Если вы хотите реализовать что-то свое (не хотите использовать itertools
, как указано в других ответах), вот что-то, что будет работать:
lower = 0
upper = 10
for range_size in range(1, upper-lower+1):
for j in range(lower, upper):
if j+range_size > upper:
break
print(f"Range: [{j}, {j+range_size}]")
Внешний l oop выполняет итерацию всех возможных size
диапазонов, которые могут быть от 1
до upper - lower
. Обратите внимание, что +1
должен убедиться, что верхний предел также включен в range
.
Внутренний l oop затем начинается с границы lower
и print
всех диапазонов размера range_size
.
Изменить: Если вы хотите получить отсортированный вывод, например itertools.combinations
, вы можете сохранить значения в массиве и отсортировать этот массив.