1

我正在尝试生成所有N+1整数集,n_j使得 n_0 < n_1 < ... < n_N每个整数集n_j在某个时间间隔内运行:n_min <= n_j < n_max.

我目前的解决方案:

def generate_partitions(nmin, nmax,N):
    n0 = range(nmin, nmax)
    return  (x for x in itertools.product(n0, repeat=N+1)
             if len(set(x)) == N+1 and list(x) == sorted(x))

虽然它有效,但显然相当愚蠢。我觉得应该有一个itertools基于更好的解决方案,但到目前为止我无法弄清楚,并且希望得到任何提示或指示。

4

1 回答 1

2

怎么样itertools.combinations(range(nmin, nmax), N + 1)

于 2012-09-22T15:08:48.460 回答