I thought about using lists like that, but it felt a little too much like cheating. My attempt at something like this is, if the word is one of your first two guesses, I reward it for having more common letters. And actually penalize common letter "misses" in later lines. I'm sure it's not 100% optimal, but I saw some improvement on my admittedly very limited set of test data. Here's the relevant code - https://github.com/mattruzicka/wordle_decoder/blob/0bfd7eaac...