I'd also suggest looking into Natural Language Processing, (Great Python toolkit - http://nltk.sourceforge.net/index.php/Main_Page). Between NLTK, Markov and affixes you have enough reading to keep you busy for quite a while.
Also, consider looking into using Yahoo BOSS search results for synonyms through word association. Things like table, desk, wood, etc... are extremely useful for generating domain names--this is pretty simple doing some basic natural language processing on search results and yields awesome results.
Finally, there's a fantastic business model behind this. Other than the obvious domain registration affiliates--keeping a database of all available domain names and then selling it to people who do this for a living (ie. domain squatters). This type of information is very valuable to them.
Unfortunately I had to give up on this idea because life gets in the way (and will for at least the next 2 years) but it looks like you've got a great start.