Given, it can be optimized to run a lot faster, for instance by working out partials and killing off paths that do not lead to a word, or by looking ahead to see if there is a letter (saves you one level of function depth), but this should still run in around 2 minutes for the max depth of 10.