Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

Generating permutations of coefficients

I have created the following function to return all pairs (n, k) such that a slightly altered binomial coefficient is less than or equal to a certain N:

bin = lambda n, k : binomial(n + k - 1, k)

def nkfilter(N):
    pairs = []
    for n in range(2, N+1):
        for k in range(1, n):
            if bin(n, k) <= N:
                pairs.append([n, k])
    print '\n (n, k)\n'            
    return pairs

This prints out the following:

example = nkfilter(8); print example

(n, k)

[[2, 1], [3, 1], [3, 2], [4, 1], [5, 1], [6, 1], [7, 1], [8, 1]]

I now would like to take this n and generate a tuple of length n: (a_1,..., a_n), for which all the a_is are less than or equal to k. I have been considering permutations to accomplish this, but I believe I need to first generate list_of_numbers_less_than_k and then take permutations(n, list_of_numbers).

However I am not sure which data types to use, and how to generate these n-length tuples.