Permutation eines Arrays mit Wiederholung in Java

Es gibt einige ähnliche Fragen auf der Website, die hilfreich waren, aber ich kann dieses Problem nicht ganz beheben. Ich hoffe, dass sich diese Fragen nicht wiederholen.

Dies ist eine Hausaufgabe, bei der Sie ein festgelegtes Array von Zeichen [A, B, C] haben und die Rekursion verwenden müssen, um alle Permutationen (mit Wiederholung) zu erhalten. Der Code, den ich habe, macht das so:

char[] c = {'A', 'B' , 'C'};

public void printAll(char[] c, int n, int k) {
    if (k == n) {
      System.out.print(c);
      return;
    }
    else {   
      for (int j = 0; j<n; j++) {
        for (int m = 0; m<n; m++) {
           System.out.print(c[k]); 
           System.out.print(c[j]); 
           System.out.print(c[m] + "\r\n");
        }
      }
    }        
    printAll(c, n, k+1);    
}

Der Parameter n sollte jedoch die Länge der Ausgabe definieren. Diese Funktion druckt zwar alle Permutationen der Länge 3 aus, kann sie jedoch nicht mit der Länge 2 ausführen. Ich habe alles versucht, was mir einfällt, und habe über die Google-Suchergebnisse gestöbert. und ich ärgere mich darüber, dass ich ein scheinbar recht einfaches Problem nicht lösen kann.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage