public class PermutationsCombinations { public static void generate(int count) { String[] original = new String[count]; for (int i = 0; i < count; i++) { original[i] = "" + (i + 1); } List<String> list = new ArrayList<String>(); go(list, original, 0, original.length - 1); System.out.println("size:" + list.size() + ". " + list); }
private static void go(List<String> list, String[] original, int start, int end) { if (start == end) { StringBuffer sb = new StringBuffer(); for (int i = 0; i <= end; i++) { sb.append(original[i]); } list.add(sb.toString()); } else { for (int i = start; i <= end; i++) { String temp = original[start]; original[start] = original[i]; original[i] = temp;