我正在尝试生成所有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
虽然它有效,但显然相当愚蠢。我觉得应该有一个更好的基于{{1}}的解决方案,但到目前为止我无法弄明白,并且会欣赏任何提示或指示。
答案 0 :(得分:2)
itertools.combinations(range(nmin, nmax), N + 1)
怎么样?