import java.util.*;
public class Main {
public static void main(String args[]) {
Scanner cin = new Scanner(System.in);
String str = cin.next();
printString(str, ββ, str);
}
public static void printString(String str, String ans, String org) {
if (str.length() == 0) {
if (isGreater(ans, org)) {
System.out.println(ans);
}
return;
}
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
String ros = str.substring(0, i) + str.substring(i + 1);
printString(str, ans + ch, org);
}
}
public static boolean isGreater(String ans, String org) {
if (ans.length() == 0) {
return false;
}
char ch1 = ans.charAt(0), ch2 = org.charAt(0);
if (ch1 < ch2) {
return false;
} else if(ch1>ch2) {
return true;
}
return isGreater(ans.substring(1), org.substring(1));
}
}============I have corrected code by now its showing tle please help me to make it efficient