title: LeetCode "Letter Combinations of a Phone Number" published: true description: tags: [leetcode, python]


I thought of separating the process of combinations is a good approach.

Letter Combinations of a Phone Number

```python class Solution: def letterCombinations(self, digits: str) -> List[str]:

    if not digits:
        return []

    DecimalToChar = {'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'],
                     '0':[' ']
                    }

    def combinations(strs1, strs2):
        combs = []
        for s1 in strs1:
            for s2 in strs2:
                combs.append(s1 + s2)
        return combs


    strs = [DecimalToChar[s] for s in digits]        
    combs = strs[0]
    for s in strs[1:]:
        combs = combinations(combs, s)

    return combs

```