Permutation of the string means all the possible new strings that can be formed by interchanging the position of the characters of the string. For example, string ABC has permutations [ABC, ACB, BAC, BCA, CAB, CBA].
Example: Java program to get all the permutation of a string
import java.util.HashSet; import java.util.Scanner; import java.util.Set; class Main { public static Set<String> getPermutation(String str) { // create a set to avoid duplicate permutation Set<String> permutations = new HashSet<String>(); // check if string is null if (str == null) { return null; } else if (str.length() == 0) { // terminating condition for recursion permutations.add(""); return permutations; } // get the first character char first = str.charAt(0); // get the remaining substring String sub = str.substring(1); // make recursive call to getPermutation() Set<String> words = getPermutation(sub); // access each element from words for (String strNew : words) { for (int i = 0;i<=strNew.length();i++){ // insert the permutation to the set permutations.add(strNew.substring(0, i) + first + strNew.substring(i)); } } return permutations; } public static void main(String[] args) { // create an object of scanner class Scanner input = new Scanner(System.in); // take input from users System.out.print("Enter the string: "); String data = input.nextLine(); System.out.println("Permutations of " + data + ": \n" + getPermutation(data)); } } Output
Enter the string: ABC Permutations of ABC: [ACB, BCA, ABC, CBA, BAC, CAB]
In Java, we have used the recursion to compute all the permutations of a string. Here, we store the permutation in a set Collection. So, there will be no duplicate permutation.