<awangdev>Combinations_2.java
public void helper(List<List<Integer>> rst, 
                List<Integer> solution, int n, int k, int start) {
        if (solution.size() == k) {
            rst.add(new ArrayList(solution));
            return;
        }        
        for (int i = start; i <= n; i++) {
            solution.add(i);
            helper(rst, solution, n, k, i + 1);
            solution.remove(solution.size() - 1); 
        }
    }
public void sample_funcname ( List < List < Integer >> rst , List < Integer > solution , int n , int k , int start ) {
  if ( solution . size ( ) == k ) {
    rst . add ( new ArrayList ( solution ) ) ;
    return ;
  }
  for ( int i = start ;
  i <= n ;
  i ++ ) {
    solution . add ( i ) ;
    helper ( rst , solution , n , k , i + 1 ) ;
    solution . remove ( solution . size ( ) - 1 ) ;
  }
}
