打印列表中所有字符串的排列

时间:2017-11-21 15:05:00

标签: python python-2.7

我正在尝试打印列表中所有成员的排列,但我的脚本只打印列表中最后一个成员的排列,即“DMNCT”。

from itertools import permutations
element_all=['EESE', 'TTDT', 'SAIFE', 'DMNCT']
i=0
for i in range (len(element_all)):
    perms = [''.join(p) for p in permutations(element_all[i])]
print perms

似乎我的for循环不能正常工作。我对python很新。任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

这种情况正在发生,因为您正在替换每个循环perms。您应该在循环外部定义列表,然后在循环内部extend

from itertools import permutations
element_all=['EESE', 'TTDT', 'SAIFE', 'DMNCT']
perms = []
for i in element_all:
    perms.extend([''.join(p) for p in permutations(i)])
print perms

或者在理解中一次定义列表

perms = [''.join(p) for i in element_all for p in permutations(i)]