from typing import List 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