我的代码
from itertools import permutations
original = input('What word would you like to unscramble?: ')
notSoOriginal = permutations(original)
print(notSoOriginal)
每当我输入"原文"变量,它返回
<itertools.permutations object at 0x02DCC6C0>
我将在此处更改以获取&#34;原始&#34;的输入字符串并打印出所有可能的角色重新排列?我也在运行Python 3.3,如果这有所不同。
答案 0 :(得分:1)
您正在寻找:
print([''.join(tup) for tup in permutations(original)])
permutations
返回包含original
的所有排列(例如('t', 'e', 'n'), ('t', 'n', 'e'), ...
)的元组的迭代器(不是列表)。因此,您需要迭代迭代器,并将每个元组连接到一个字符串。
答案 1 :(得分:1)
DSM(在评论中)是正确的,您需要permutations
而不是combinations
。
至于您报告的问题 - 与itertools
模块中的其他内容一样,permutations
和combinations
返回iterators。所以,你可以迭代结果:
for permuted in permutations(original):
print(permuted)
...或将其转换为列表:
print(list(permutations(original)))