Das ist vielleicht ein schönes Thema für
SQL (Daten-Mengen), Kreuzprodukte, ..
Sobald man 2. Mengen vereint und keine geeigneten Join Kriterien festlegt, permutiert es quasi von allein.
Äh, nee. Wie bekommt man denn die Permutationen von '123' mit
SQL hin? Oder reden wir von allen 3-stelligen Wörtern des Alphabetes ('1','2','3')? Ein Cross join liefert dir wirklich alle Kombinationen, aber hier steht was von 'Permutation' und wenn das mit
SQL geht, fress ich ... ach nee, das geht ja...
Ach, hier noch eine kleine Routine:
Delphi-Quellcode:
Procedure Perm (Const aString : String);
Procedure _Perm (Const aPrefix, aString : String);
Var
i,len : Integer;
Begin
len := Length (aString);
If len = 1 Then
Log (aPrefix+aString)
Else For i:=1 to l do
_Perm (aPrefix+aString[i], Copy (aString,1,i-1)+Copy (aString,i+1,l-i));
End;
Begin
_Perm ('',aString);
End;
Diue Prozedure 'Log' musst Du selbst schreiben (Ausgabe in Memo, speichern in Stringlist o.ä.)