Bunuda kullanabilirsin. Bu kod daha kısa oldu

. Ama yine mantığı aynı ilk verdiğim kod ile. Alfabemizdeki harfleri 5 harfli kelimeler halinde dizersek 20 milyondan fazla kelime oluşuyo tabi bunuda ekrana basarsak çok uzun sürer çünkü yanlış hesaplamadıysam 19mb den fazla veriyi ekrana basıyoruz.
function permutasyon($Harfler, $KacHarfli){
for($Sayac1=0; $Sayac1<$KacHarfli; $Sayac1++){
$PHPKod.='for($Sayac'.$Sayac1.'=0;$Sayac'.$Sayac1.'<strlen($Harfler); $Sayac'.$Sayac1."++){\n";
if($Sayac1==$KacHarfli-1){
$PHPKod.='$Perm[]="';
for($Sayac2=0; $Sayac2<$KacHarfli; $Sayac2++){
$PHPKod.='$Harfler[$Sayac'.$Sayac2.']';
}
$PHPKod.="\";\n";
for($Sayac2=0; $Sayac2<$KacHarfli; $Sayac2++){
$PHPKod.="}\n";
}
}
}
@eval($PHPKod);
return $Perm;
}
foreach(permutasyon('abcde',2) as $a => $b){
echo $b.'<br>';
}