$array = array('a', 'b', 'c');
function permutation($elements, &$result, $prefix = '') {
$length = count($elements);
for ($i = 0; $i < $length; $i++) {
$permutation = $prefix.$elements[0];
$backup = array_shift($elements);
$elements = array_values($elements);
permutation($elements, $result, $permutation);
$elements[] = $backup;
$elements = array_values($elements);
$result[] = $permutation;
}
}
permutation($array, $result = array());
sort($result);
echo '<pre>';
print_r($result);
echo '</pre>';
found that somewhere in my scripts
output:
Array
(
[0] => a
[1] => ab
[2] => abc
[3] => ac
[4] => acb
[5] => b
[6] => ba
[7] => bac
[8] => bc
[9] => bca
[10] => c
[11] => ca
[12] => cab
[13] => cb
[14] => cba
)
hth