Test case not pass

import java.util.*;
class Main{

public static ArrayList<String>al=new ArrayList<String>(); 
public static void main(String[] args) { 
    Scanner sc=new Scanner(System.in);
    String s = sc.next();
    findsubsequences(s,"");  
    System.out.println(al);
    System.out.println(findsize(al));
} 

private static void findsubsequences(String s, String ans) { 
    if(s.length()==0) 
    { 
        al.add(ans);  
        return; 
    } 

            //we add adding 1st character in string            
    findsubsequences(s.substring(1),ans+s.charAt(0)) ; 

            // Not adding first character of the string 
            // because the concept of subsequence either  
            // character will present or not 
    findsubsequences(s.substring(1),ans);       
} 

private static int findsize(ArrayList<String> al)
{
	return al.size();
}

}

import java.util.*;

public class Main {
public static ArrayList al = new ArrayList();

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
	String s = sc.next();
	findsubsequences(s, "");
	// System.out.println(al);// not print arrayList
	// get string from arrayList
	for (String val : al) {
		System.out.print(val + " ");
	}
	System.out.println();

	System.out.println(findsize(al));
}

private static void findsubsequences(String s, String ans) {
	if (s.length() == 0) {
		al.add(ans);
		return;
	}
	// Not adding first character of the string
	// because the concept of subsequence either // character will present or not
	findsubsequences(s.substring(1), ans);
	// we add adding 1st character in string
	findsubsequences(s.substring(1), ans + s.charAt(0));

}

private static int findsize(ArrayList<String> al) {
	return al.size();
}

}