import java.util.*;
public class Sample {
public static void main(String[] args) {
var list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
var empty = new ArrayList<Integer>();
var result = new ArrayList<List<Integer>>();
for(var i = 1; i <= list.size(); i++)
generateCombination(list, empty, i, result);
for(var r : result)
System.out.println(r);
}
static void generateCombination(List<Integer> src,
List<Integer> dest,
int n,
List<List<Integer>> result) {
if(n == 0) result.add(dest);
else {
for(var i = 0; i < src.size(); i++) {
var d = new ArrayList<>(dest);
d.add(src.get(i));
var s = src.subList(i + 1, src.size());
generateCombination(s, d, n - 1, result);
}
}
}
}
[1]
[2]
[3]
[4]
[1, 2]
[1, 3]
[1, 4]
[2, 3]
[2, 4]
[3, 4]
[1, 2, 3]
[1, 2, 4]
[1, 3, 4]
[2, 3, 4]
[1, 2, 3, 4]