import java.util.*; import java.lang.*; class Main { { List<Character> list = new ArrayList<Character>(); list.add('1'); list.add('2'); list.add('3'); list.add('4'); list.add('5'); list.add('6'); } static <T> List<List<T>> combinations( List<T> list, int n ){ List<List<T>> result; if( list.size() <= n ){ result = new ArrayList<List<T>>(); result.add( new ArrayList<T>(list) ); }else if( n <= 0 ){ result = new ArrayList<List<T>>(); result.add( new ArrayList<T>() ); }else{ List<T> sublist = list.subList( 1, list.size() ); result = combinations( sublist, n ); for( List<T> alist : combinations( sublist, n-1 ) ){ List<T> thelist = new ArrayList<T>( alist ); thelist.add( list.get(0) ); result.add( thelist ); } } return result; } }
Standard input is empty
[[5, 6], [6, 4], [5, 4], [6, 3], [5, 3], [4, 3], [6, 2], [5, 2], [4, 2], [3, 2], [6, 1], [5, 1], [4, 1], [3, 1], [2, 1]]