An algorithm for finding all the valid English words that can be formed from the letters of an input word