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.