[Solved] Given a string containing digits from 2-9 inclusive, return all possible letter combinations that the number could represent. Return the answer in any order. A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.

Question

Given a string containing digits from `2-9` inclusive, return all possible letter combinations that the number could represent. Return the answer in any order.

A mapping of digits to letters (just like on the telephone buttons) is given below. Note that 1 does not map to any letters.

Example 1:

```Input: digits = "23"
```

Example 2:

```Input: digits = ""
Output: []
```

Example 3:

```Input: digits = "2"
Output: ["a","b","c"]
```

Constraints:

• `0 <= digits.length <= 4`
• `digits[i]` is a digit in the range `['2', '9']`.

Python Solution

```class Solution:
def rec(self,digits):
phone = {'2': 'abc', '3': 'def', '4': 'ghi', '5': 'jkl', '6': 'mno', '7': 'pqrs',                    '8': 'tuv', '9': 'wxyz'}

if len(digits)==0:
return ''

if len(digits)==1:
return phone[digits]

front = phone[digits[0]]
back = self.rec(digits[1:])
res = [f+b for f in front for b in back ]

return res

def letterCombinations(self, digits: str) -> List[str]:
return self.rec(digits)```