Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- #-*- coding:utf-8 -*-
- def print_sequence(limit):
- """ Основная функция, которая задаёт начальные аргументы перебирающей функции """
- print_num(len(str(limit)), 0, 0, limit)
- def print_num(digits, i, buf, limit):
- """ Перебирающая функция, перебор идёт с помощью рекурсии. возвращает True, если последнее число (limit) достигнуто.
- Аргументы:
- digits — номер десятичного разряда
- i — значение этого разряда
- buf — кусок числа, который обработали выше в рекурсии """
- current_num = buf * 10 + i
- if digits != 0: # Если не последний разряд
- if print_num(digits - 1, 0, current_num, limit): # Начинаем перебирать следующий разряд
- return True
- else: # Если последний разряд
- print str(current_num), # Выводим число
- if (current_num == limit): # Если это последнее число, выходим из дерева рекурсии
- return True
- if (i != 9):
- if print_num(digits, i + 1, buf, limit): # Тут перебираем значения текущего разряда
- return True
- return False
- print_sequence(1234)
- print
- print_sequence(0)
- print
- print_sequence(10000)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement