I've tried it making the checker exactly as you have suggested. This was my original idea.
However - on my 800 finds, there are about 500 codes without duplicates. Every letter is present in about 70 codes (the number 4 is in 200 caches = the codes beginning with 4 [:)] ).
So, we must choose 7 caches from sets of in media 80 possibilities. This is about 2x10^13 combinations. Respect of 1.5x10^15 without the optimization. Yes, we have lower the number of possibilities by about 100, but this is not enough. The limit is about 10^8, so we need to lower it by 1000000.
However, for someone with 5k finds like Target. (3500 without doubles), the sets for every character have about 450 with peak of 1200 for '4' and '3', so the number of combinations rises to 4e18. If we cannot lower it by factor of at least 1e10, this is no way.