- 论坛徽章:
- 0
|
回朔法
numbers = [0,0,0,0,0,0,0,0,0,0]
#[1,2,3] to 123
def to_int(c):
r = 0
for i in range(0, len(c)):
r = r + c[i] * (10 ** (len(c) - i - 1))
return r
#how many digits do u mant?
def print_nums(digits, start_pos):
for x in range(1, 10):
if x not in numbers[: start_pos]:
numbers[start_pos] = x
if start_pos == digits - 1:
print to_int(numbers[:start_pos + 1])
else:
print_nums(digits, start_pos + 1)
print_nums(1, 0)
print_nums(4, 0)
print_nums(5, 0)
print_nums(6, 0)
print_nums(7, 0)
...
print_nums(9, 0)
不用回朔, 你可以试试求9位数字,看看要写多少个 for |
|