This returns lots of false positives. Certain patterns, LLLL, result in very small result sets (5 items) but when re-searching the pattern, a different set is returned.
do you produce the string with the monte carlo choosing within a specific subset? I'm not sure why it wouldn't produce more than 5 combinations and then 5 different combinations...
also, if you have-time/like, you can probably implement a quick hash on the fly for the domains already returned to avoid listing the same domain twice in a search with few alternatives, it should be quick.
but cool tool!
I build an array of arrays where each subset array has all the possibilities for that letter. So if the query was N then a[0] = [0,..,9]. Then I just pick a random element from each subset array and stitch them all together in order.