我正在寻找一种算法,它计算给定长度(n)和位数(k)的位串的所有排列.例如,while n=4和k=2算法应输出:
1100
1010
1001
0011
0101
0110
Run Code Online (Sandbox Code Playgroud)
我知道Gosper的Hack,它以字典顺序生成所需的排列.但我需要以这样的方式生成它们,即两个连续的排列仅在两个(或至少是一个恒定数量的)位置上不同(如上例中所示).这样做的另一个好处是很棒,但算法描述也会帮助我很多.