import java.util.Arrays; public class Enumerate { int count = 0; private void swap (char[] a, int x, int y) { char tmp = a[x]; a[x] = a[y]; a[y] = tmp; } private void enumerate(char a[], int n) { int i; if (0 == n){ count++; System.out.println(count + " - " + Arrays.toString(a)); } else for (i = 0; i < n; i++) { swap(a, i, n-1); enumerate(a, n-1); swap(a, n-1, i); } } public static void main(String[] args) { Enumerate e = new Enumerate(); char a[] = {'a','b','c','d'}; e.enumerate (a,a.length); } }