# 电话号码的字母组合

<p>给定一个仅包含数字 <code>2-9</code> 的字符串，返回所有它能表示的字母组合。答案可以按 <strong>任意顺序</strong> 返回。</p><p>给出数字到字母的映射如下（与电话按键相同）。注意 1 不对应任何字母。</p><p><img src="https://img-service.csdnimg.cn/img_convert/71e2c27cd43a6f678c1972f865e982d0.png" style="width: 200px;" /></p><p> </p><p><strong>示例 1：</strong></p><pre><strong>输入：</strong>digits = "23"<strong><br />输出：</strong>["ad","ae","af","bd","be","bf","cd","ce","cf"]</pre><p><strong>示例 2：</strong></p><pre><strong>输入：</strong>digits = ""<strong><br />输出：</strong>[]</pre><p><strong>示例 3：</strong></p><pre><strong>输入：</strong>digits = "2"<strong><br />输出：</strong>["a","b","c"]</pre><p> </p><p><strong>提示：</strong></p><ul>	<li><code>0 <= digits.length <= 4</code></li>	<li><code>digits[i]</code> 是范围 <code>['2', '9']</code> 的一个数字。</li></ul>

## 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

```