我有一个字符串列表:['red','blue','pink']
,我想生成给定列表元素的所有排列组合列表,如下所示:
['red', 'redblue', 'redbluepink', 'redpinkblue',
'blue', 'bluered', 'bluepink', 'blueredpink', 'bluepinkred',
'pink', 'pinkred', 'pinkblue', 'pinkredblue', 'pinkbluered']
我已经成功编写了以下代码,用于生成列表元素的所有正向排列:
from itertools import combinations
def all_permutations(list_of_strings):
results = [''.join(list_of_strings[i:j]) for i, j in combinations(range(len(list_of_strings) + 1), 2)]
return results
print(all_permutations(['red','blue','pink']))
然而,这段代码只能生成所有正向排列:
['red', 'redblue', 'redbluepink', 'blue', 'bluepink', 'pink']
有没有人能帮我找出一种方法,可以生成由字符串列表中元素的所有排列组合?
i in [1, 2, 3]
,然后链接map(permutations, combinations(colors, i))
。 - a_guestredpink
不在你的预期输出中? - cody