public static void Main()
public static int[] toBase(long bs, long value)
int[] result = new int[bs];
for (long i = bs - 1; i >= 0; i--)
result[i] = (int)(value % bs);
public static long Pow(long a, long b)
for (int i = 0; i < b; i++) result *= a;
public static char[] pool = new char[] { 'a', 'b', 'c', '3', '5', '6' };
public static void outputAll()
for (long i = 0; i < Pow(n, n); i++)
int[] indices = toBase(n, i);
for (int j = 0; j < n; j++)
Console.Write("{0} ", pool[indices[j]]);