Anagram solver
Type a word, a name or a whole phrase. This finds the rearrangements that are actually English — including the ones that need more than one word, which is where the good anagrams live. Dormitory has no single-word anagram. It has dirty room.
Results
Try one of these
Each runs the real search against the real dictionary, in this tab, for nothing. They are picked so that each one shows a different thing the page can do.
What it is costing
There is no model here and nothing to bill. What this app spends is dictionary bytes over the wire, a slice of your frame budget while a search runs, and — only if you keep an answer — a little storage. All three are shown rather than hidden.
Sign in to see how much storage your saved answers use.
Answers you kept
Saving is optional and free. Kept answers live on your SkillSafe account rather than in this browser, so they follow you to another machine.
How it works, in one page
Every word in the dictionary is filed under its letter signature — its letters
sorted into order. Ate, eat, eta and tea all become
aet, so they are one entry, not four. Asking "is there a word made of exactly
these letters" is then a single hash lookup rather than a walk through 126,000 words. That
alone answers the one-word case instantly.
Multi-word search is the hard part, and it is where naive solvers freeze the tab. The trick is to stop looking at the dictionary. When you type a phrase, one pass over the 115,000 signatures keeps the few hundred or few thousand that fit inside its letters, and every step after that works on that list. The dictionary is never touched again.
Then the search subtracts. Take a candidate, remove its letters, recurse on what is left. The part that makes this finish is choosing which letter to solve for next: at every step it picks the rarest remaining letter and only considers words containing it. That forces progress — some word has to use that letter — and it makes each answer come out exactly once rather than once per ordering of its words. Two prunes do the rest: a branch dies the moment it would leave a stub shorter than your minimum word length, and dies again if the letters left over could not fit in the words still allowed.
Even so, a long phrase is genuinely a lot of work, and the honest thing is not to pretend otherwise. The search is a generator that can be suspended between any two steps, and it is driven ten milliseconds at a time, one slice per animation frame. So results stream in as they are found and the page keeps responding to you while it thinks. Measured on a 35-letter phrase at six words per answer: 2,420 ms of total work, 242 slices, worst slice 10.1 ms against the 16.7 ms a 60fps frame allows.
The dictionary is SCOWL 2020.12.07, cut into four bands and shipped as four files so the page fetches 734 KB to start rather than 1.19 MB. Turning on proper nouns fetches the fourth file once and merges it into the same index — switching a band off afterwards costs nothing, because a band is a bitmask test at search time, not a rebuild.