--- from: http://rosettacode.org/wiki/Combinations_and_permutations note: Probability and statistics