Our anagram solver is designed for finding Scrabble words by rearranging letters of given rack and make new words from letters.
In other words, our anagram solver service acts as a scrabble helper. You may want to use it for making scrabble cheat , of course but it is not recommended.
Are you looking for Jumble solutions. Navigate to jumble solver
First a database of all possible scrabble words is needed. Official Scrabble word list called as "Tournament Word List" or TWL. This word list roughly contains 178K words. We have a word list and now we need to determine what possible words that can be made from given letters. This can be done by calculating permutations of given rack and check generated word against TWL. This will work with small words but it won't when word size increases. Possible solutions will increase gradually and computing such number of words won't be practical. Also querying a database against generated word for existence takes ages due to high number of queries.
We need different approach to solve this problem. First of all we need to decrease number of queries and if possible we need to calculate all results at one shot, in other words with one query. It can be done by reorganizing our word database. If we add additional data for each word that contains number of each letter then we can easily find which words have enough letters within given rack. Lets go with an example.
We have letters in our racks which are s p r i t e s. In other words we have a set that is grouped by number of letters which is s=2, p=1, r=1, i=1, t=1, e=1 . Lets say our database is organized like this. esprits : s=2, p=1, r=1, i=1, t=1, e=1 or spriest : s=2, p=1, r=1, i=1, t=1, e=1. Now you can see the idea. We have converted an ordered set (which is word) to a vector, in other words we make it independent from order. So we don't need to deal with order or permutations. All we have to do is just to ask if given rack numbers and their counts are less or equal to words in database. If you setup database correctly you can get all words instantly with this method.