No sé si te servirá de algo ahora... pero hice lo que querías de dos formas distintas (solo por aburrimiento
![Riendo](http://static.forosdelweb.com/fdwtheme/images/smilies/risa.png)
). Acá te las paso por si lo quieres ver:
Esta es sin recursividad:
Código PHP:
$ciudades = array(2 => 'Crespo', 3 => 'Diamante', 4 => 'Parana', 5 => 'Valle Maria');
foreach($ciudades as $num1 => $algo)
{
foreach($ciudades as $num2 => $algo)
{
if($num2 == $num1)
continue;
foreach($ciudades as $num3 => $algo)
{
if($num3 == $num2 or $num3 == $num1)
continue;
foreach($ciudades as $num4 => $algo)
{
if($num4 == $num3 or $num4 == $num2 or $num4 == $num1)
continue;
echo $num1.' '.$num2.' '.$num3.' '.$num4.'<br>';
}
}
}
}
Y esta es con una función recursiva:
Código PHP:
$ciudades = array(2 => 'Crespo', 3 => 'Diamante', 4 => 'Parana', 5 => 'Valle Maria');
function recorrido($ciudades, $recorrido)
{
if(count($ciudades) == 0)
{
foreach($recorrido as $c1 => $n1)
echo $c1.' ';
echo '<br>';
return TRUE;
}
foreach($ciudades as $c => $n)
{
$ciudades2 = $ciudades;
$recorrido2 = $recorrido;
$recorrido2[$c] = $n;
unset($ciudades2[$c]);
recorrido($ciudades2,$recorrido2);
}
}
recorrido($ciudades,array());
Saludos y cualquier cosa si no entendes pregunta y te explico.