comefrom: <awangdev>Subsets II_5.java
code: public void helper(ArrayList<ArrayList<Integer>> rst, ArrayList<Integer> list, 
      	ArrayList<Integer> S, int level) {
  		if (!rst.contains(list)) {
  			rst.add(new ArrayList<Integer>(list));
  		}
  		if (level == S.size()) {
  		    return;
  		}
      		
      	list.add(S.get(level));
      	helper(rst, list, S, level + 1);
      	list.remove(list.size() - 1);
  
      	helper(rst, list, S, level + 1);
      }
masked: public void sample_funcname ( ArrayList < ArrayList < Integer >> rst , ArrayList < Integer > list , ArrayList < Integer > S , int level ) {
    if ( ! rst . contains ( list ) ) {
      rst . add ( new ArrayList < Integer > ( list ) ) ;
    }
    if ( level == S . size ( ) ) {
      return ;
    }
    list . add ( S . get ( level ) ) ;
    helper ( rst , list , S , level + 1 ) ;
    list . remove ( list . size ( ) - 1 ) ;
    helper ( rst , list , S , level + 1 ) ;
  }
  