Олимпиадный тренинг

Задача . Состояние цикла


Задача

Темы:
Для решения задачи методом "грубой силы" начинающий программист Иосиф решил написать блок программы, содержащий k вложенных циклов. 
На бумаге это могло бы выглядеть примерно так:
\(for\ i_1\ in\ range\ (a_1,\ b_1):\\ \ \ \ for\ i_2\ in\ range\ (a_2,\ b_2): \\ \ \ \ \ \ \ \ \cdots \cdots \cdots \\ \ \ \ \ \ \ \ \ \ \ \ for\ i_k\ in\ range\ (a_k\,b_k): \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \cdots \cdots \cdots \\ \)
Иосиф не смог реализовать "такую конструкцию", поскольку k оказалось параметром задачи. Помогите Иосифу решить задачу используя метод рекурсивного получения следующего состояния цикла.
Напишите подпрограмму, которая получает на вход текущее состояние (список X), набор начальных значение (список А), набор финальных значений (список В) и возвращает следующее (в порядке возрастания) значение. Гарантируется, что следующее значение получить можно.

 

time 1000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
Python3
Комментарий учителя