Table of Contents

## 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"Output:["ad","ae","af","bd","be","bf","cd","ce","cf"]

**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)