code: private void select(int dataIndex, String[] resultList, int resultIndex, List<String[]> result) {
  		int resultLen = resultList.length;
  		int resultCount = resultIndex + 1;
  		if (resultCount > resultLen) { // 全部选择完时，输出组合结果
  			result.add(Arrays.copyOf(resultList, resultList.length));
  			return;
  		}
  
  		// 递归选择下一个
  		for (int i = dataIndex; i < datas.length + resultCount - resultLen; i++) {
  			resultList[resultIndex] = datas[i];
  			select(i + 1, resultList, resultIndex + 1, result);
  		}
  	}
docs: 组合选择
  
  @param dataList 待选列表
  @param dataIndex 待选开始索引
  @param resultList 前面（resultIndex-1）个的组合结果
  @param resultIndex 选择索引，从0开始