Combinaciones en Java

private void helper(List<int[]> combinations, int data[], int start, int end, int index) {    
  if (index == data.length) {        
    int[] combination = data.clone();        
    combinations.add(combination);    
  } 
  else if (start <= end) {        
    data[index] = start;        
    helper(combinations, data, start + 1, end, index + 1);        
    helper(combinations, data, start + 1, end, index);    
  }
}
paragpallav