Anagram it ! An anagram solver

Max no. of anagrams:

Words min No.: Words min length:
Words max No.: Words max length:

Subwords only wildcard
Search: Ordered  Random

Vocabulary: Small Medium Large  Names

Format of Results (plus some explanations)

Imagine you asked for the anagrams of paler fluid. You could get, among the other results, one line like
full [repaid paired diaper]
this means that an anagram of paler fluid can be formed by taking full plus any of the 3 words [repaid paired diaper], like in full diaper or in full repaid.

In this way, I can represent multiple anagrams on a single line.

Remember that the case of the letters has no importance and that spaces are completely ignored. So, for the program onceuponatime and Once Upon a Time are equivalent.

With the Sorted option set, the program generates the anagrams starting from those containing longer words. The Random option instead shuffles somehow the words before starting to search, so that, repeating the search you could get different sets of solutions (if there are many solutions). The lack of this option from many on-line generators has been one of my motivations in writing a new one.

Instead of anagrams, you can ask for subwords, i.e., words that can be formed with all or just some of the given letters. You can also use a wildcard, i.e., an arbitrary additional letter. This kind of search can be useful while playing at Scrabble, to get an idea of which kind of words were possible (once we had played our word).

For example, given the letters vinkocog the program will determine that the longest possible word is cooking (discarding a v) but, if we have a wildcard, we can obtain convoking, where the wildcard stands for the second n.

The distinction between Sorted and Random is effective only for anagrams with 32 or less letters (see below). Indeed, if the input contains more than 32 letters, to speed up the search I use a slightly different method, which implicitly forces the Random option and does not take into account the parameters minumum and maximum number of words.

The program is written in C language (under linux). The first working version had required about 2 hours of work and was less than 250 lines of code long.

If you find a bug, please let me know! I just started this page, after having served millions of anagrams in my Italian page.