Why is this code wrong

import java.util.*;
public class Main {

static ArrayList<String> 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=1 ; i<al.size() ; i++)
		{
			if(!al.get(i).equals(al.get(i-1)))
				System.out.println(al.get(i-1));
		}
		if(  al.get(al.size()-1) != al.get(al.size()-2)  )
		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);
	
	al.add(ans+c);
	subseq(sb , ans+c);
	
	subseq(sb , ans);
}

}