String Permutations in Java
Generate all permutations of a string using recursion.
AdvancedModule 4: String ProgramsExample 25 of 25
string-permutations.java
1import java.util.Scanner;23public class Main {4 private static void permute(String s, String prefix) {5 if (s.isEmpty()) {6 System.out.println(prefix);7 return;8 }9 for (int i = 0; i < s.length(); i++) {10 char c = s.charAt(i);11 String rem = s.substring(0, i) + s.substring(i + 1);12 permute(rem, prefix + c);13 }14 }1516 public static void main(String[] args) {17 Scanner sc = new Scanner(System.in);18 System.out.print("Enter a string: ");19 String s = sc.nextLine();2021 permute(s, "");22 sc.close();23 }24}
Output
Enter a string: abc abc acb bac bca cab cba
What's going on
We recursively fix one character at a time and permute the rest.