NumParam=3 NumPoints=7 def generateStats(numParam, numPoints): if numParam==1: return [[numPoints]] ret=[] for i in range(numPoints+1): ret+=[[i]+p for p in generateStats(numParam-1,numPoints-i)] return ret def isFirstWinner(l1,l2): return sum([1 if a1>a2 else 0 for a1,a2 in zip(l1,l2)])>=2 stats= generateStats(NumParam,NumPoints) for s1 in stats: _sum=0 for s2 in stats: if isFirstWinner(s1,s2): _sum+=1 print s1,_sum
Standard input is empty
[0, 0, 7] 0 [0, 1, 6] 6 [0, 2, 5] 10 [0, 3, 4] 12 [0, 4, 3] 12 [0, 5, 2] 10 [0, 6, 1] 6 [0, 7, 0] 0 [1, 0, 6] 6 [1, 1, 5] 11 [1, 2, 4] 14 [1, 3, 3] 15 [1, 4, 2] 14 [1, 5, 1] 11 [1, 6, 0] 6 [2, 0, 5] 10 [2, 1, 4] 14 [2, 2, 3] 16 [2, 3, 2] 16 [2, 4, 1] 14 [2, 5, 0] 10 [3, 0, 4] 12 [3, 1, 3] 15 [3, 2, 2] 16 [3, 3, 1] 15 [3, 4, 0] 12 [4, 0, 3] 12 [4, 1, 2] 14 [4, 2, 1] 14 [4, 3, 0] 12 [5, 0, 2] 10 [5, 1, 1] 11 [5, 2, 0] 10 [6, 0, 1] 6 [6, 1, 0] 6 [7, 0, 0] 0