Anagram Generator

Every permutation of the letters you enter, capped so that an eight-letter word does not try to hand you forty thousand rows.

A true anagram uses every letter exactly once

An anagram is not simply a word that looks jumbled. It is a rearrangement that uses every letter of the source exactly as many times as the source used it, and no more. Formally you are comparing the multiset of characters: listen and silent both contain one each of e, i, l, n, s and t, so they are anagrams; listens is not, because the second s has nowhere to come from. That one rule is what separates the exercise from a scramble. Rearranging is a permutation problem: every input letter lands in exactly one output slot, and nothing is added or lost.

The generator on this page takes you at your word. It removes whitespace with a single pass and then permutes the characters that remain, whatever they are. Type a hyphen and the hyphen gets permuted. Type a digit and the digit moves around with the letters. Nothing is silently dropped, because deciding what counts as a letter is a judgement about your puzzle, not about the string. If you want punctuation gone, strip it before you paste. What comes back is the complete set of distinct orderings of exactly the characters you supplied, with the original spelling filtered out of the list so you are not handed back what you typed.

Why eight letters already means 40,320 rows

Permutations grow at the rate of the factorial, and the factorial is the fastest ordinary function most people ever meet. A five-letter word has 120 orderings. Six gives 720, seven gives 5,040, and eight gives 40,320, a list you could not read in an afternoon. Nine reaches 362,880 and twelve passes 479 million. A full 26-letter pangram would have roughly 4x10^26 orderings, more than any machine will ever enumerate.

Repeated letters cut that down, because two identical letters swapped produce the same string. The count becomes n! divided by the factorial of each repeat: banana, with three a's and two n's, has 720 divided by 12, or 60 distinct arrangements rather than 720, and letter has 180 rather than 720. The generator collapses those duplicates for you, so a word with doubled letters returns a shorter list than its length suggests.

This is why the tool refuses inputs longer than eight letters and caps the result list at 500 rows, defaulting to 100. That ceiling is not about server load; everything here runs in your browser. Beyond eight characters, exhaustive listing stops being a technique and becomes a data dump, and no human scans forty thousand strings looking for the one that reads. Past that length you want a dictionary lookup, not an enumeration.

Scrambles, dictionary hits and phrase anagrams differ

Three different things get called an anagram generator, and they solve different problems. The first is a scramble: one random reordering, usually produced by a Fisher-Yates shuffle, which walks the string backwards swapping each position with a random earlier one. It returns a single result with no promise that it is a word. That is what a word-jumble puzzle needs, and it is what the shuffle tool on this site does.

The second is a dictionary-checked anagram. You generate the orderings, then keep only those that appear in a word list. The answers depend entirely on which list: a competition word list admits thousands of entries a general dictionary omits, so two tools using different lexicons disagree about what counts as a word.

The third and hardest is a perfect anagram of a whole phrase, where every letter of the source is consumed by a new sequence of real words and spaces may fall anywhere. That is a search for an exact cover of the letter pool by dictionary entries, and it explodes far faster than simple permutation because word boundaries multiply the choices at every step.

This page sits in the middle, without the dictionary: exhaustive rather than random, filtered by nothing, a source of candidates rather than finished answers.

Sorting the letters is how anagrams get detected

Generating anagrams is expensive; recognising them is almost free, and the asymmetry is worth exploiting. Sort the characters of a string into a fixed order and you get a canonical form, a key that every anagram of that string shares. listen, silent, enlist, inlets and tinsel all sort to eilnst. Two strings are anagrams if and only if their sorted keys match, which turns the comparison into a single equality test.

That is the basis of anagram grouping. Walk a dictionary once, compute the key for each entry, and file the entry under that key in a hash map. Every bucket you end up with is a complete anagram family, found in a single pass rather than by generating candidates and looking them up. Sorting costs k log k for a word of k letters; over a fixed alphabet a vector of twenty-six tallies works as the key and costs one linear sweep.

The catch is that the key is only as reliable as the normalisation in front of it. Listen and silent get different keys if you sort raw characters, because uppercase L is not lowercase l, and the same multiset written with a combining accent will not match one written without. Case folding, whitespace removal and accent handling all have to happen before the sort, which is why the next two sections matter.

Case, spaces and punctuation force a decision first

Before you can permute anything you have to decide what counts as a letter, and there is no neutral answer. Puzzle convention says ignore case, ignore spaces, ignore punctuation and keep only letters; a cryptic setter checking fodder against an answer works exactly that way. A name puzzle might want the apostrophe gone but the hyphen kept, and a data cleanup task might want the digits preserved.

This tool removes whitespace and nothing else. Case survives, so a capital L and a lowercase l are two different characters and appear in different positions of the output. Lowercase your input before pasting if you want the conventional behaviour.

Case folding is also less tidy than it looks once you leave ASCII, where the two cases of a letter differ by a single bit, 0x20 apart. German sharp s, U+00DF, uppercases to two characters, SS, so uppercasing strasse's native spelling yields a seven-letter string from a six-letter one and changes the answer outright. Turkish treats dotted and dotless i as separate letters, so case mapping there depends on locale rather than on the character alone. Greek has two lowercase sigmas, one used only word-finally, which case folding unifies and naive lowercasing does not. If your source is not plain English, fold it before you sort.

Accents change the letter pool you are permuting

An accented letter can be one character or two, and Unicode considers both spellings correct. Precomposed e-acute is U+00E9, a single code point. The decomposed form is plain e followed by U+0301, combining acute accent, from the Combining Diacritical Marks block at U+0300 to U+036F. They look identical on screen, compare as unequal, and give letter pools of different sizes: a five-letter word in one form is a six-character string in the other.

The Unicode normalisation forms defined in UAX #15 are the fix. NFC composes sequences into precomposed characters where one exists; NFD decomposes them. Run your input through NFC before pasting and accented letters behave as single atoms.

Skip that step and the output goes visibly wrong, not subtly wrong. This generator moves characters by UTF-16 code unit, so a combining mark is permuted independently and reattaches to whichever character now precedes it. An acute meant for an e lands on an r. The same mechanism breaks anything outside the Basic Multilingual Plane, including emoji, because each of those is a surrogate pair and permuting splits it into two halves that render as replacement boxes. For scripts where a written unit is several code points by design, such as Devanagari, per-character permutation is the wrong operation entirely.

Where anagram work still earns its keep

Cryptic crossword setting is the most demanding regular use. An anagram clue supplies fodder plus an indicator word (confused, broken, cooked, drunk) and the fodder must contain exactly the letters of the answer, no more and no fewer. That check is mechanical and unforgiving, and the fastest way to do it is to sort both strings and compare, not to list orderings.

Pseudonyms are the oldest use. Vladimir Nabokov signed a character into his own novel as Vivian Darkbloom, a strict rearrangement of his name. J. K. Rowling built a plot turn on Tom Marvolo Riddle rearranging into I am Lord Voldemort. Astronomers used them as timestamps: in 1610 Galileo circulated his observation of Saturn as a scrambled Latin sentence, claiming priority without revealing what he had seen.

The everyday uses are smaller and just as real. Word-game players learn to anagram a rack of tiles on sight, and reading permutations of a stem is how that skill is drilled. Puzzle constructors need a legal rearrangement before they can build a clue around it. Anyone naming a band, a handle or a pen name wants a rearrangement of a name they already own. Teachers use it for spelling practice because the answer set is finite and checkable.

The generator gives permutations, never meaning

Here is the limitation, stated plainly: this tool produces orderings, not words. It has no dictionary, no frequency table and no scoring. Ask it for the arrangements of a six-letter word and it will hand back hundreds of strings, of which a handful are English and the rest are consonant runs no one will ever use. The machine can guarantee that every result uses your letters exactly once. It cannot tell you which one reads, which one is funny, or which one comments on the source, that judgement is the entire craft. A merely valid rearrangement of a name is trivial; a rearrangement that says something about the person is why anyone bothers.

So use the output as raw material. Scan it, keep the three or four fragments that look promising, and finish by hand or against a word list you trust.

The output is also deliberately plain letters. Styled Unicode text of the kind this site generates elsewhere is code point substitution, the Mathematical Alphanumeric Symbols at U+1D400 to U+1D7FF, for instance, are separate characters that merely look like letters. They defeat any dictionary check and fail plain text search, so results stay in ordinary characters a crossword grid and a search box both accept.

Frequently asked questions

Can I anagram a full name or a two-word phrase?

Spaces are stripped first, so a phrase becomes one continuous letter pool, but the eight-character ceiling applies to the joined string, and most names exceed it. For longer phrases, check a candidate you already have by sorting both letter sets and comparing, rather than asking for every ordering.

Why is my original word missing from the results?

It is filtered out on purpose. The identity permutation is a valid rearrangement, but it is the one you already typed, so it is removed before display. The comparison ignores case, so typing Listen also removes listen from the list. If you need it, it is your input.

Does the uppercase toggle affect which results appear?

No. Uppercasing happens after generation, so it changes how the list looks and nothing about its contents. Mixed-case input is different: case is preserved while permuting, so LiStEn returns orderings that shuffle the capitals around as well. Normalise the case of your input first if that is not what you want.

How does the result cap decide what to cut?

Generation stops the moment the cap is reached, so you get the first rows of the enumeration rather than a random sample. The recursion tries your characters in the order you typed them, which biases a truncated list toward orderings beginning with your first letters. Raise the limit to 500, or reorder your input.

Is a palindrome a kind of anagram?

Not quite. Reversal is one specific permutation, so a palindrome is a word that equals that particular rearrangement of itself. Anagram work is about the whole set of orderings; a palindrome is a property of a single one. The reverse text tool handles that case directly.

Are letter rearrangements safe to use as passwords?

No. Rearranging preserves the letter pool, so an attacker who guesses the source word only has to try its orderings, 40,320 of them for eight letters, which is instant. Use the password generator instead; it draws from crypto.getRandomValues rather than reshuffling something guessable. Length and unpredictability are what matter, not arrangement.

How do I test two long phrases without generating anything?

Strip spaces and punctuation from both, fold them to one case, normalise to NFC, then sort the characters of each and compare the two sorted strings. If they match, the phrases are anagrams; if they differ anywhere, they are not. Detection never needs enumeration, which is why it works at any length.

Does any of this text leave my browser?

No. The permutation runs in JavaScript on your own device, nothing is uploaded, and there is no account to create. The eight-character ceiling is not a server limit either. It exists because forty thousand rows in a browser list is unusable, not because anything is being metered.