Slightly OT: I know you probably don't really care, but who knows--it might come in handy some day, so.... for future ref, BASH can do number & character generation via curly-bracket statements, e.g., you can replace the numbers & letters in each of your for loops with
{0..9} {a..f}.
(PS: Number generation has been around for a while, but character-generation might have been added in bashV4.)