How to generate all permutations of a word in PHP

2 Answers

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

function generate_permutations($str, $i, $size) {
    if ($i == $size) {
        echo $str . "\n";
    }
    else {
        for ($j = $i; $j < $size; $j++) {
            swap($str, $i, $j);
            generate_permutations($str, $i + 1, $size);
            swap($str, $i, $j);
        }
    }
}


$str = "yes";

generate_permutations($str, 0, strlen($str));



        
/*
run:
             
yes
yse
eys
esy
sey
sye
      
*/

 



answered Dec 18, 2023 by avibootz
0 votes
function swap(&$str, $i, $j) {
    $temp = $str[$i];
    $str[$i] = $str[$j];
    $str[$j] = $temp;
}
 
function generate_permutations($str, $i, $size) {
    if ($i == $size) {
        echo $str . "\n";
    }
    else {
        for ($j = $i; $j < $size; $j++) {
            swap($str, $i, $j);
            generate_permutations($str, $i + 1, $size);
        }
    }
}
 
 
$str = "yes";
 
generate_permutations($str, 0, strlen($str));
 
 
 
         
/*
run:
              
yes
yse
eys
esy
sye
sey
       
*/

 



answered Dec 18, 2023 by avibootz
...