On 24/02/2023 18:34, Hen Hanna wrote:
i just wrote a program, which...
within [FunFunPython]
finds: (funny, futon, python)
( 5- and 6- letter words )
(my program uses a Trie, but is pretty simple)
Maybe someone would show me
how it's done using itertools, Permutations, etc.
Wouldn't it get too slow for Letter-Seeds longer than 11 letters or so?
For performance, generally you sort the characters in a word to create a
new word (character list) and compare the sorted character lists (which
you can use a string for). Two anagrams will produce the same sorted
character list.
The problem with going through all permutations is that the number of
permutations tends to grow exponentially, so that is why you sort first.
So first take an English dictionary and build a python dictionary with
the key being the character sorted list and the value being a list of
the English words that produce the sorted list, aka anagrams.
You then sort your specific word and test each subset of this sorted
word (each combination of characters) against your python anagram
dictionary.
--
https://mail.python.org/mailman/listinfo/python-list