dotnetdev dotnetdev - 3 months ago 11
Java Question

Generating all permutations of a given string

What is an elegant way to find all the permutations of a string. E.g.

ba
, would be
ba
and
ab
, but what about
abcdefgh
? Is there any example Java implementation?

Answer
public static void permutation(String str) { 
    permutation("", str); 
}

private static void permutation(String prefix, String str) {
    int n = str.length();
    if (n == 0) System.out.println(prefix);
    else {
        for (int i = 0; i < n; i++)
            permutation(prefix + str.charAt(i), str.substring(0, i) + str.substring(i+1, n));
    }
}

(via Introduction to Programming in Java)

Comments