Python 如何使用itertools中的combinations对象查找要输入的字符串的每个排列?
我的代码Python 如何使用itertools中的combinations对象查找要输入的字符串的每个排列?,python,permutation,itertools,Python,Permutation,Itertools,我的代码 from itertools import permutations original = input('What word would you like to unscramble?: ') notSoOriginal = permutations(original) print(notSoOriginal) 每当我为“原始”变量输入一个单词时,它就会返回 <itertools.permutations object at 0x02DCC6C0> 为了将输入
from itertools import permutations
original = input('What word would you like to unscramble?: ')
notSoOriginal = permutations(original)
print(notSoOriginal)
每当我为“原始”变量输入一个单词时,它就会返回
<itertools.permutations object at 0x02DCC6C0>
为了将输入字符串转换为“original”,并让它打印所有可能的字符重排,我在这里会做什么更改?如果有什么不同的话,我也在运行Python 3.3。您正在寻找:
print([''.join(tup) for tup in permutations(original)])
permutations
返回元组的迭代器(而不是列表),元组包含原始
的所有置换(例如('t','e','n'),('t','n','e'),…
)。因此,您需要在迭代器上进行迭代,并将每个元组连接到一个字符串中。DSM(在注释中)是正确的,而不是错误的
至于您报告的问题-与模块中的所有其他问题一样,排列
和组合
返回。因此,您可以对结果进行迭代:
for permuted in permutations(original):
print(permuted)
。。。或将其转换为列表:
print(list(permutations(original)))
旁白:如果你想要每一次“重新排列”,难道你不想要
排列
,而不是组合
。