Assuming you're looking at ints as input, you can obviously change to base 36 (10 alpha+ 26 chars) giving you your result.
Other than that, you could allow upper/lower, widening your base to 10+52.
If you allow all ascii (might not be pretty, but should work), you could potentially use 256, so you might cut down to around 15.
I'd probably look at choosing a 100 chars i'm happy with, and simply taking every 2 numbers and converting into a char in that range.
Here's some linqpad code that will spit 144 printable(ish) chars:
Array values = Enum.GetValues(typeof(ConsoleKey));//.Dump("all values");
var val_list = values.Cast<ConsoleKey>();
var verbose = from value in val_list
select new {IntVal = (int) value,
IntValPrintsAs = (char)value,
Value=((ConsoleKey) value),
Straight = value
};
verbose.Dump();
If you ignore some of the obvious ones like backspace, it might give you a direction :)