Permutations – all possible sets of numbers

You’re looking for the permutations formula:

nPk = n!/(n-k)!

In your case, you have 9 entries and you want to choose all of them, that’s 9P9 = 9! = 362880

You can find a PHP algorithm to permutate in recipe 4.26 of O’Reilly’s “PHP Cookbook”.

pc_permute(array(0, 1, 2, 3, 4, 5, 7, 8));

Copied in from O’Reilly:

function pc_permute($items, $perms = array( )) {
    if (empty($items)) { 
        print join(' ', $perms) . "\n";
    }  else {
        for ($i = count($items) - 1; $i >= 0; --$i) {
             $newitems = $items;
             $newperms = $perms;
             list($foo) = array_splice($newitems, $i, 1);
             array_unshift($newperms, $foo);
             pc_permute($newitems, $newperms);
         }
    }
}

Leave a Comment