题目:由6,7,8,9四个数字能组成多少个互不相同且无重复数字的三位数?分别是多少?
```
# 利用穷举法实现求解
NUM = 0;
numbers = [6,7,8,9]
for i in numbers:
for j in numbers:
for k in numbers:
if ((i!=j) and (i!=k) and (j!=k)):
print(i,j,k)
NUM = NUM +1
print(NUM)
```
另外可以采用python的迭代器来完成。
迭代器最大的特点是惰性求值,即只有当迭代至某个值时,才会对其进行计算,而不是一开始就计算出全部的值。
迭代器特别适合应用于大文件,无限集合等,因为无需将他们一次性传入内存中。
itertools是Python内置的模块,其中包含了一系列迭代器相关的函数和类。
其中permutations方法是用来生成排列的
用法:permutations(iterable[, r])
其中,r 指定生成排列的元素的长度,如果不指定,则默认为可迭代对象的元素长度。
```
from itertools import permutations
NUM = 0;
numbers = [6,7,8,9]
for i in permutations(numbers, 3):
print(i)
NUM = NUM+1
print(NUM)
```