列出'从1-100中选择10个不同数字'的所有组合

时间:2013-04-23 05:11:57

标签: combinations

已知存在从1到100 选择10个不同数字的C(100,10)种可能性。每种可能性都是[1,2,...,10]或[2,3,...,11],或[11,22,33,...,99,100]的组合,只要10个数字不同。

如何通过编程列出所有组合? 我不想写10循环,python或c首选

2 个答案:

答案 0 :(得分:3)

使用python和itertools.combinations

警告 - 打印需要很长时间

for i in itertools.combinations(xrange(1,101),10):
    print i

答案 1 :(得分:0)

我的朋友Yujie Liu提出了这个想法。使用纯迭代。

# select n diff numbers from min - max
def traceArr(arr, min, max, n):
    if n > 0:
        for i in range(min, max-n+2):
            arr1 = arr[:]
            arr1.append(i)
            traceArr(arr1, i+1, max, n-1)
    elif n == 0:
        print arr    

# Demo, select 5 diff numbers from 1-10
traceArr([], 1, 10, 5);