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
*/