it really depends on how many users you will have. I found with a system that had a realtively small userbase of maybe a few hundred it was easy enough just to go through the database and weed out the undesirables by hand
and don't forget that there are calls that are like 1H4 with multiple non consecutive numbers. maybe have the program take input of nationality and check things against the nations procedure of callsigns
Remember that callsigns are also not unique identifiers, since a ham's callsign can change, and his old one can be reassigned to someone else.