【发布时间】:2013-08-30 16:42:14
【问题描述】:
我一直在尝试使用 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!/((n-i)!*i!),但我无法通过迭代单个组合来解决我的问题。我将使用最大为 10,000 的数组,因此循环所有可能的“01”排列并丢弃不适合的数组对我来说效率太低。输出的顺序也无关紧要。
【问题讨论】:
标签: python combinations combinatorics