How to write a recursive function to generate all permutations of a string in PHP

1 Answer

0 votes
function swap(&$str, $i, $j) {
    $temp = $str[$i];
    $str[$i] = $str[$j];
    $str[$j] = $temp;
}

function generatePermutation(&$str, $l, $r) {
    if ($l == $r) {
        echo implode('', $str) . PHP_EOL;
    } else {
        for ($i = $l; $i <= $r; $i++) {
            swap($str, $l, $i);
            generatePermutation($str, $l + 1, $r);
            swap($str, $l, $i); // backtrack
        }
    }
}

$s = str_split("ABC");

generatePermutation($s, 0, count($s) - 1);


  
/*
run:
    
ABC
ACB
BAC
BCA
CBA
CAB

*/

 



answered Nov 5, 2025 by avibootz
...