# 电话号码的字母组合
给定一个仅包含数字 2-9
的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。
给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。

示例 1:
输入:digits = "23"
输出:["ad","ae","af","bd","be","bf","cd","ce","cf"]
示例 2:
输入:digits = ""
输出:[]
示例 3:
输入:digits = "2"
输出:["a","b","c"]
提示:
0 <= digits.length <= 4
digits[i]
是范围 ['2', '9']
的一个数字。
## template
```python
from typing import List
class Solution:
def letterCombinations(self, digits: str) -> List[str]:
letters = [
[],
[],
['a', 'b', 'c'],
['d', 'e', 'f'],
['g', 'h', 'i'],
['j', 'k', 'l'],
['m', 'n', 'o'],
['p', 'q', 'r', 's'],
['t', 'u', 'v'],
['w', 'x', 'y', 'z'],
]
combinations = []
i = 0
for d in digits:
letter = letters[int(d)]
if i == 0:
for l in letter:
combinations.append([l])
else:
added = []
for c in combinations:
j = 0
origin_c = []
origin_c += c
for l in letter:
if j == 0:
c.append(l)
else:
new_c = []
new_c += origin_c
new_c.append(l)
added.append(new_c)
j += 1
combinations += added
i += 1
output = []
for c in combinations:
output.append(''.join(c))
return output
# %%
s = Solution()
print(s.letterCombinations(digits = "23"))
```
## 答案
```python
```
## 选项
### A
```python
```
### B
```python
```
### C
```python
```