我一直在尝试使用 itertools、组合和附魔从字符列表中找到所有可能的(英语)单词,最多一组(x)个单词,每个单词没有字符限制。似乎无法找到/创建我正在寻找的东西。不是在寻找讲义或免费赠品,而是真正坚持我朋友传给我的 DnD 密码。
基本上,如果我有:
char_list = ['i', 't', 'c', 'r', 'r', 's', 'f', 'o', 'k', 'p', 'a', 'e', 'u', 'a']
我正在尝试打印:
possible_combos = [["xxx", "xxx", "xxx", "xxx"], ...]
请不要笑,但这就是我一直在努力的。我知道这是不对的,但我很难理解我到底错过了什么。
import itertools
lst = ['i', 't', 'c', 'r', 'r', 's', 'f', 'o', 'k', 'p', 'a', 'e', 'u', 'a']
combinatorics = itertools.product([True, False], repeat=len(lst) - 1)
solution = []
for combination in combinatorics:
i = 0
one_such_combination = [lst[i]]
for slab in combination:
i += 1
if not slab: # there is a join
one_such_combination[-1] += lst[i]
else:
one_such_combination += [lst[i]]
solution.append(one_such_combination)
print(solution)