String Permutations

Generate all permutations of a string using recursion.

JavaAdvanced
Java
import java.util.Scanner;

public class Main {
    private static void permute(String s, String prefix) {
        if (s.isEmpty()) {
            System.out.println(prefix);
            return;
        }
        for (int i = 0; i < s.length(); i++) {
            char c = s.charAt(i);
            String rem = s.substring(0, i) + s.substring(i + 1);
            permute(rem, prefix + c);
        }
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String s = sc.nextLine();

        permute(s, "");
        sc.close();
    }
}

Output

Enter a string: abc
abc
acb
bac
bca
cab
cba

We recursively fix one character at a time and permute the rest.