生成有序整数集

2021-08-02 16:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图生成所有的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的解决方案,但到目前为止我还没有弄清楚,如果有任何提示或提示,我将不胜感激。你知道吗