Holen Sie sich alle Kombinationen für eine Zeichenfolge

Ich versuche, eine Funktion in JavaScript zu erstellen, die bei Angabe eines Strings ein Array aller möglichen Buchstabenkombinationen zurückgibt, wobei jede mit der kürzesten beginnt. Beispielsweise würde für die Zeichenfolge ABC Folgendes zurückgegeben:

A
B
C
AB
AC
ABC

Ich könnte Schleifen wie folgt verwenden:

for(i=0; i<string.length; i++) {
   //add string[i]
}
for(i=0; i<string.length; i++) {
    for(a=i; a<string.length; a++) {
            //add string[i]+string[a]
    }
}
for(i=0; i<string.length; i++) {
    for(a=i; a<string.length; a++) {
        for(b=a; b<string.length; b++) {
            //add string[i]+string[a]+string[b]
        }
    }
}

Aber ich kenne die Länge der Saite nicht, also wüsste ich nicht, wie viele Loops ich verwenden soll.

Irgendwelche Ideen?

Bearbeiten: Ich frage nicht nach Permutationen, ABC und ACB sollten nicht beide zurückgegeben werden. Wichtig ist auch, dass die kürzeste Zeit die erste im Array ist.

Das sind keine Hausaufgaben. Es ist für ein Programm zum Lösen eines "Lights-Out" -Spiels.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage