尽可能以最快的方式生成所有n位二进制数

ram*_*rur 3 algorithm bitstring

如何生成所有可能的n位字符串组合?我需要以最快的方式生成20位字符串的所有组合.(我目前的实现是通过按位AND和右移操作完成的,但我正在寻找更快的技术).

我需要将位串存储在数组(或列表)中以获得相应的十进制数,例如 -

0 --> 0 0 0

1 --> 0 0 1

2 --> 0 1 0 ...等

任何的想法?

Tug*_*tes 7

蟒蛇

>> n = 3
>> l = [bin(x)[2:].rjust(n, '0') for x in range(2**n)]
>> print l
['000', '001', '010', '011', '100', '101', '110', '111']
Run Code Online (Sandbox Code Playgroud)

  • 运行发电机可能更好;当序列完全可预测时,将字符串保留在列表中以便可以循环遍历列表是完全没有必要的。 (2认同)