我正在寻找一种方法来查找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'。
答案 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)}