我正在制作一个单词生成器,它可以接受几个输入字母,将它们放入所有可能的位置,并与文档匹配以查找单词。如果我的方法不正确,请告诉我!如果可以,请问我该如何做? 谢谢
我正在制作一个单词生成器,它可以接受几个输入字母,将它们放入所有可能的位置,并与文档匹配以查找单词。如果我的方法不正确,请告诉我!如果可以,请问我该如何做? 谢谢
import itertools
for word in itertools.permutations( list_of_letters ):
print ''.join(word)
itertools.permutations( list_of_letters, length )
文档 - mmaksitalievdef permutation(head, tail=''):
if len(head) == 0:
print tail
else:
for i in range(len(head)):
permutation(head[0:i] + head[i + 1:], tail + head[i])
如果反向运行可能会更快:索引您的文档,并针对每个单词查看它是否是字母列表的子集。
def allpermutationsOfString(words):
if len(words) == 1:
return [words]
result = []
for index, letter in enumerate(words):
wordWithoutLetter = words[:index] + words[index+1:]
result = result + [letter + word for word in allpermutationsOfString(wordWithoutLetter)]
return result
print allpermutationsOfString("watup") #will print all permutations of watup
len(s) == n
,排列的数量是n!
;这个数字增长得非常快(例如,我的用户名有 3,628,800 种排列方式)。 - jonrsharpe