Ragazzi, aiuto!!


ho la neccessità di creare un funzione che calcoli tutte le possibili permutazioni (senza ripetizioni) di un input (una serie di numeri, o una serie di lettere o parole...)
per es:
input: abc
output: abc,acb,bca,bac,cab,cba

un mio amico mi ha fornito il codice in ASP, sto tentando di tradurlo in PHP ma mi continua a dare errore...
potreste darmi una mano?

il codice in ASP è il seguente:
codice:
Function permuta(matrice() As String, pre As String) As String
	Dim num_elementi As Integer
	Dim iteratore, iteratore2 As Integer
	Dim creatore As Integer
	Dim newMatrice() As String
	Dim appoggio As String

num_elementi = UBound(matrice) +1

If num_elementi = 1 Then
	Appoggio = pre & matrice(0) & “;”
Else
	ReDim newMatrice(num_elementi – 2)
	For iteratore = 0 To num_elementi – 1
		creatore = 0
		For iteratore2 = 0 To num_elementi – 1
			If iteratore2 <> iteratore Then
				newMatrice(creatore) = matrice(iteratore2)
				creatore = creatore + 1
			End If
		Next
		appoggio = appoggio & permute (newMatrice, pre & matrice(iteratore))
	Next
End If
permuta = appoggio
End Function
io l'ho "tradotto" così: (ovviamente sbagliato)
codice:
function permuta($matrice,$pre) {
		
	$num_elementi=strlen($matrice);
	if ($num_elementi==1) {
	$appoggio="$pre"."$matrice[0]".";";  }
	else {
	       for ($iteratore=0; $iteratore<=$num_elementi-1;$iteratore++){
		$creatore=0;
		for ($iteratore2=0;$iteratore2<=$num_elementi-1;$iteratore2++) {
	             	if ($iteratore2!=$iteratore) {
				 $newmatrice[$creatore]=$matrice[$iteratore2];
				 $creatore++;
						}
		}
	if (isset($appoggio))
		$appoggio=$appoggio.permuta($newmatrice,$pre.$matrice[$iteratore]);
	else $appoggio=permuta($newmatrice,$pre.$matrice[$iteratore]);
		}
	}
return $appoggio;			
}
Grazie cmq a tutti in anticipo...