TextArray
100% local

Line combinations

Combine every line of one list with every line of another.

Input
List B
Output

Line combinations

Paste one list into each panel and get every possible pairing: each line of list A joined with each line of list B. Ten cities and eight services become eighty keyword phrases in a single step. The pattern turns up constantly in SEO and paid search — city × service, brand × model, colour × size — and just as often in test data, product variants, UTM tags and naming schemes for files or campaigns.

The result follows list A: the first line of A is paired with every line of B, then the second line of A, and so on down the list. Choose what goes between the two parts — a space, a hyphen, a comma, nothing at all, or a custom separator, where a typed \t becomes a real tab. Every item is trimmed and blank lines are skipped, so a stray empty line at the end of a paste never produces half-finished pairs.

Two lists can add up quickly, so the output limit caps how many pairs are generated: raise it when you need the complete set, lower it when a sample is enough. Switch on removing duplicate lines when different pairs can join into identical text. This tool combines exactly two lists at a time — for a third dimension, move the output back into the input and run it against another list.

Everything is computed in your browser, so neither list is uploaded — which matters when they hold client names or unreleased products. The tally under the output shows the size of both lists and how many combinations came out, and it updates as you type.

FAQ

In what order are the combinations generated?
List A leads: the first line of A is paired with every line of B, then the second line of A, and so on. Both lists keep the order you pasted them in.
Can I combine three or four lists at once?
Not in one pass — the tool works with two lists at a time. To add a third, move the output back into the input with the button under the result and combine it with the next list.
What does the output limit do?
It caps how many pairs are generated, counted before duplicates are removed. Two lists of 500 lines each already make 250,000 combinations, so the limit keeps a large paste from producing more than you asked for. The tally says when the limit was reached.
Why did I get fewer lines than list A × list B?
Either the output limit stopped the run, or "Remove duplicate lines" dropped pairs that joined into identical text. Empty lines in either list are ignored and never count as items.
Are my lists uploaded anywhere?
No. The combinations are built entirely in your browser and neither list ever leaves your device.