permutações de uma string usando iteração

Eu estou tentando encontrar a permutação de uma determinada string, mas eu quero usar iteração. A solução recursiva que encontrei on-line e eu entendo, mas convertê-la em uma solução iterativa realmente não funciona. Abaixo, anexei meu código. Eu realmente aprecio a ajuda:

public static void combString(String s) {
    char[] a = new char[s.length()];
    //String temp = "";
    for(int i = 0; i < s.length(); i++) {
        a[i] = s.charAt(i);
    }
    for(int i = 0; i < s.length(); i++) {
        String temp = "" + a[i];    

        for(int j = 0; j < s.length();j++) {
            //int k = j;
            if(i != j) {
                System.out.println(j);
                temp += s.substring(0,j) + s.substring(j+1,s.length());
            }               
        }
        System.out.println(temp);
    }
}

questionAnswers(6)

yourAnswerToTheQuestion