Fijate si te sirve (lo hice hace mucho) sirve para encontrar todas las combinaciones de un abecedario a-z hasta encontrar una palabra (aquí es "papa")
Código PHP:
<?php
set_time_limit(0);
function cargar($palabra){
global $longitud;
global $posibles;
global $asignar;
$longitud=strlen($palabra);
$asignar=array();
$posibles =range(a,z);
for($i=0;$i<$longitud;$i++){
$asignar[$i]=$posibles;
}
}
function solucionado($palabra,$test){
if($test==$palabra)return 1;
return 0;
}
function paltmp(){
global $longitud;
global $posibles;
global $asignar;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])==count($posibles))return 0;
}
return 1;
}
function ensayar($palabra){
global $longitud;
global $posibles;
global $asignar;
global $solucionado;
if($solucionado==1) return;
for($i=0;$i<$longitud;$i++){
if(count($asignar[$i])!=count($posibles))continue;
for($j=0;$j<count($posibles);$j++){
$asignar[$i]=$posibles[$j];
if(paltmp()>0){
$paltmp=implode('',$asignar);
if(solucionado($palabra,$paltmp)>0){
echo '<br />La solución es: '.$paltmp;$solucionado=1;return;
}
else echo '<br />'.$paltmp;
}
ensayar($palabra);
}
$asignar[$i]=$posibles;return;
}
}
$algo='papa';
cargar($algo);
ensayar($algo);
?>