Dictionary order(larger)

What is probliem in this code
import java.util.*;
public class Main{

public static ArrayList pp(String str){
if(str.length()==0){
ArrayList base=new ArrayList<>();
base.add("");
return base;
}
char c=str.charAt(0);
String ros=str.substring(1);
ArrayList rr=pp(ros);
ArrayList mr=new ArrayList<>();
for(String rss : rr){
for(int i=0;i<rss.length();i++){
String s=rss.substring(0,i)+c+rss.substring(i);
mr.add(s);}

}
return mr;}
public static void main(String args[]) {
try{
String u=“abc”;
ArrayList k=pp(“abc”);
Collections.sort(k);
for (int j=0; j<k.size(); j++) {
int S = u.compareTo(k.get(j));
if(S>0)
System.out.println(k.get(j));}
}

catch(Exception e){System.out.println(e);}
}}

Hi @Sweta,
The corrected code is at this link . All the corrections have comments describing them.