Used the superior Algorithm::Combinatorics module