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
爲基礎的解決方案,但我無法弄清楚到目前爲止,並會欣賞任何提示或指針。
你的反斜槓是多餘的;當匹配括號,括號或花括號時,不需要它們。 –
啊,很高興知道,謝謝! –