在python

时间:2015-05-28 18:00:32

标签: python-3.x binary

我正在寻找一种方法来查找x量为' 1'的所有二进制排列。 例如:

(长度= 2) x = 1(所以:找到1和0的所有排列,长度为2,其中一个为1)

l = ['01', '10']

x = 2(所以:找到1和0的所有排列,长度为2,其中有两个1)

l = ['11']

到目前为止,我有这个计算所有可能的排列,但我不知道如何过滤'它们由#1;(特别是当大小为7时)

pre = list(map(''.join, itertools.product('01',repeat=2)))

我正在寻找比我的for循环更快/更好的东西,其中包括' 1'。

1 个答案:

答案 0 :(得分:2)

试试这个:

l=7
x=6
set(itertools.permutations([1]*x + [0]*(l-x)))

结果:

{(0, 1, 1, 1, 1, 1, 1),
 (1, 0, 1, 1, 1, 1, 1),
 (1, 1, 0, 1, 1, 1, 1),
 (1, 1, 1, 0, 1, 1, 1),
 (1, 1, 1, 1, 0, 1, 1),
 (1, 1, 1, 1, 1, 0, 1),
 (1, 1, 1, 1, 1, 1, 0)}