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>';
}