What is wrong in this

static ArrayList al = new ArrayList<>();

public static void main(String[] args) {

	
	Scanner sc=new Scanner(System.in);
	int N=sc.nextInt();
	String space=sc.nextLine();
	for(int j=1 ; j<=N ; j++)
	{
		String s=sc.nextLine();
		subseq(s , "");
		System.out.println("");
		Collections.sort(al) ; 
		for(int i=0 ; i<al.size() ; i++)
		{
//			if(!al.get(i).equals(al.get(i-1)))
				System.out.println(al.get(i));
		}
//		System.out.println(al.get(al.size()-1));
	}
}

static void subseq(String s , String ans)
{
	if(s.length()==0)	return;
	
	
	String sb=s.substring(1);
	char c=s.charAt(0);
	
	if(!al.contains(ans+c))
	al.add(ans+c);
	subseq(sb , ans+c);
	
	subseq(sb , ans);
}

}