Make a <insert your favorite language> script that loads an English word dictionary, add .com at the end of each word and curl each concatenated string for a 200 response. This will get you starting. Then you can try with numbers, towns, countries etc. After n days and n GB of bandwidth you'll have your own verified list of domains. I think you'll have difficulties finding such an up-to-date list. Good luck with your search engine(assuming you want to build such one).