String Permutations and Combinations
TextEverything runs locally in your browser — nothing is uploaded
Four kinds of enumeration in one tool: all permutations, combinations of k, left and right rotation, and the cartesian product. The important part is that the exact count is computed before anything is generated: `abcdefghij` has 3,628,800 permutations, and generating first would freeze the page before you could react. So it refuses and tells you how many results the input needs. Duplicate characters are removed: `aab` yields 3 permutations (`aab`, `aba`, `baa`), not 6. In cartesian mode each comma-separated segment contributes its characters (`ab,12` gives `a1 a2 b1 b2`). Everything runs in your browser; nothing is uploaded.
Features
- Five modes: permutations, combinations of k, left and right rotation, cartesian product
- ⚠️ Exact count first, then generate — over the limit it errors, never truncates silently
- Duplicate characters removed: aab yields 3 permutations, not 6
- Combinations counted exactly via generating-function coefficients
- Choose generation order or sorted output
- Reports the result count and the current limit
- Code-point based, so emoji are never split
How to use
- Enter one line of text
- Pick a mode; for combinations set k
- Adjust deduplication, order and the limit as needed
- The result list and count appear immediately
FAQ
- Why an error instead of the first 1000 results?
- Silent truncation makes it look like “that is all there is”. Permutation counts grow factorially, and the missing results are often the ones you were looking for, so it says how many are needed instead.
- How are duplicate characters handled?
- Generation walks a per-character count rather than swapping positions, so two identical letters are never treated as two results. That is why `aab` gives 3.
- How do I enter a cartesian product?
- Separate the groups with commas; each group contributes its characters. `ab,12` gives a1, a2, b1, b2.
- Is anything uploaded?
- No. It is all computed in memory in your browser, no request is made, and it works offline.
Related tools
Brace Expansion
WebExpand bash brace patterns such as {a,b}, {1..10..2} and {a..e} into every item, with nesting, steps, reverse ranges and zero padding.
Shuffle Text
TextShuffle text by lines, characters or words. Word spacing and leading indentation stay in place. Runs entirely in your browser.
Regex Tester
TextTest a regex in the browser: live highlighting, capture groups, replace preview, a backtracking guard — and JavaScript, Python, Java, Go or PHP code.
Text Diff
TextCompare two blocks of text online and highlight added, removed and unchanged lines, so only the lines that changed are marked. Runs in your browser.
Word Counter
TextCount Chinese characters and English words separately, alongside characters, lines, real UTF-8 bytes, reading and speaking time, and SMS segment counts.
Text Cleaner
TextClean up a column pasted out of a log or spreadsheet: deduplicate, sort, drop blank lines, trim whitespace and strip line numbers, all in your browser.