### letterCombinations 
from typing import *
def f_gold(digits: str) -> List[str]:
    n = len(digits)
    if n == 0:
        return []
    chars = ['abc', 'def', 'ghi', 'jkl', 'mno', 'pqrs', 'tuv', 'wxyz']
    strs = [chars[int(d) - 2] for d in digits]
    res = []
    for s in strs:
        if not res:
            res = list(s)
        else:
            cache = []
            for item in res:
                for letter in s:
                    cache.append(item + letter)
            res = cache
    return res