class Solution: def letterCombinations(self, digits: str) -> List[str]: if len(digits) == 0: return [] options = { '2': ('a', 'b', 'c'), '3': ('d', 'e', 'f'), '4': ('g', 'h', 'i'), '5': ('j', 'k', 'l'), '6': ('m', 'n', 'o'), '7': ('p', 'q', 'r', 's'), '8': ('t', 'u', 'v'), '9': ('w', 'x', 'y', 'z') } pools = (options[digit] for digit in digits) result = [""] for pool in pools: result = [x+y for x in result for y in pool] return result