所以我正在创建一个单词生成器,它接收几个输入的字母,将它们放在所有可能的位置,并将它们与文档匹配以查找单词。如果我接近这个错误请告诉我!如果不是我怎么能这样做? 感谢
答案 0 :(得分:8)
要生成给定字母列表的所有排列,请使用itertools模块。
import itertools
for word in itertools.permutations( list_of_letters ):
print ''.join(word)
答案 1 :(得分:2)
反向运行它可能会更快:索引文档,并为每个单词查看它是否是字母列表的子集。
答案 2 :(得分:2)
您可以编写自己的函数(:
def 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])
答案 3 :(得分:0)
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
这是实现算法的另一种方法。