繁体   English   中英

x个唯一字符的Python排列每次重复y次

[英]Python permutations of x unique characters repeated y times each

我正在尝试获得每个重复y次的x个唯一字符的排列列表。 所以这看起来像这样:

x = ['0', '1']
y = 2

permutation_list = ['0011','0101','1001','1010','0110','1100']

我不想要额外的东西('0001','1110'等),我不想要重复 - 有没有人知道这样做的简洁方法?

我尝试过使用itertools,但我最终得到了重复项。

使用列表的所有唯一排列,重复y次:

from itertools import permutations

permutation_list = set(permutations(x * y))

演示:

>>> from itertools import permutations
>>> x = ['0', '1']
>>> y = 2
>>> set(permutations(x * 2))
{('0', '1', '1', '0'), ('0', '1', '0', '1'), ('1', '0', '1', '0'), ('1', '1', '0', '0'), ('1', '0', '0', '1'), ('0', '0', '1', '1')}

这些可以映射回列表:

[''.join(combo) for combo in set(permutations(x * 2))]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM