我一直在尝试用 itertools.product() 和 itertools.permutations() 解决这个问题,但仍然找不到我需要的组合。抱歉,如果以前有人问过这个问题,但我到处搜索都无济于事。
例如,给定一个大小为 6 的字节数组,我如何轻松遍历所有可能包含 2 个 0 和 4 个 1 的集合?即,以下序列(希望我做对了):
- 001111
- 010111
- 011011
- 011101
- 011110
- 100111
- 101011
- 101101
- 101110
- 110011
- 110101
- 110110
- 111001
- 111010
- 111100
我知道序列的大小将是 n!/((ni)!*i!) 但我无法将我的大脑包裹在迭代单个组合上。II 将使用最大为 10,000 的数组,因此循环遍历所有可能的“01”排列并丢弃不适合的排列对我来说效率太低了。输出的顺序也无关紧要。