Only one test case is correct.can you please tell me the fault??
import java.util.ArrayList;
import java.util.Scanner;
public class dictionaryorderlarger {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scn=new Scanner(System.in);
String str=scn.next();
ArrayList<String> result=DictionaryLarge(str);
for(int i=0;i<result.size();i++)
{
if(result.get(i).compareToIgnoreCase(str)>0)
{
System.out.println(result.get(i));
}
}
}
public static ArrayList<String> DictionaryLarge(String str)
{
if(str.length()==0)
{
ArrayList<String> br= new ArrayList<String>();
br.add("");
return br;
}
char ch=str.charAt(0);
String ros=str.substring(1);
ArrayList<String> mr=new ArrayList<>();
ArrayList<String> rr=DictionaryLarge(ros);
for(String rrs:rr)
{
for(int i=0;i<=rrs.length();i++)
{
String val=rrs.substring(0,i)+ ch +rrs.substring(i);
mr.add(val);
}
}
return mr;
}
}