将排列结果添加到字符串中并在它们之间换行

Add permutation outcomes into a string and break line between them

我想写一个排列列表,并在每个排列之间换行,这样我就不会得到我通常得到的括号和块等的巨大混乱。

我该怎么做?

此外,我如何将排列组合在一起以针对每个结果创建一个字符串? 我的代码:

import itertools
print(list(itertools.permutations(["an","de","si","ta"],4)))

理想情况下,我希望它打印出如下内容:

andesita 
tasidean

而不是:

[('an', 'de', 'si', 'ta'), ('an', 'de', 'ta', 'si'), ('an', 'si', 'de', 'ta'), ('an', 'si', 'ta', 'de'), ('an', 'ta', 'de', 'si'), ('an', 'ta', 'si', 'de'), ('de', 'an', 'si', 'ta'), ('de', 'an', 'ta', 'si'), ('de', 'si', 'an', 'ta'), ('de', 'si', 'ta', 'an'), ('de', 'ta', 'an', 'si'), ('de', 'ta', 'si', 'an'), ('si', 'an', 'de', 'ta'), ('si', 'an', 'ta', 'de'), ('si', 'de', 'an', 'ta'), ('si', 'de', 'ta', 'an'), ('si', 'ta', 'an', 'de'), ('si', 'ta', 'de', 'an'), ('ta', 'an', 'de', 'si'), ('ta', 'an', 'si', 'de'), ('ta', 'de', 'an', 'si'), ('ta', 'de', 'si', 'an'), ('ta', 'si', 'an', 'de'), ('ta', 'si', 'de', 'an')]

迭代 itertools.permutations() 结果并使用 str.join() 从每个结果创建一个字符串:

for combo in itertools.permutations(["an", "de", "si", "ta"], 4):
    print(''.join(combo))

演示:

>>> import itertools
>>> for combo in itertools.permutations(["an", "de", "si", "ta"], 4):
...     print(''.join(combo))
...
andesita
andetasi
ansideta
ansitade
antadesi
antaside
deansita
deantasi
desianta
desitaan
detaansi
detasian
siandeta
siantade
sideanta
sidetaan
sitaande
sitadean
taandesi
taanside
tadeansi
tadesian
tasiande
tasidean