Number of Permutations (Python)

vegaseat 3 Tallied Votes 3K Views Share

This snippet allows you to find the number of ordered permutations of items taken from a population of known size. It uses the well know algorithm with factorials. For very large populations you may want to use an approximation of factorials.

''' permutation_number1.py
find the number of ordered permutations of items
taken from a population of known size
see also:
http://www.mathwords.com/p/permutation_formula.htm

tested with Python27/33 and IronPython273  by  vegaseat  27feb2013
'''
from math import factorial

def number_permutations(n, k):
    '''
    return the number of ordered permutations of
    k items taken from a population of size n
    uses algorithm n!/(n-k)!
    '''
    return factorial(n)/factorial(n-k)

q = '''\
How many ways can 4 students from a group of 15
be lined up for a photograph?
'''
print(q)
print(number_permutations(15, 4))


''' result ...
How many ways can 4 students from a group of 15
be lined up for a photograph?

32760
'''

q2 = '''
How many ways can you permutate 'abc'?
'''
print(q2)
print(number_permutations(3, 3))

''' result ...
How many ways can you permutate 'abc'?

6
'''