range() с отрицательным шагом можно, указав начальное значение больше конечного и отрицательное значение шага. Например:
  range(10, 0, -1) создаст последовательность чисел от 10 до 1 (не включая 0) с шагом -1.
Использовать функцию range() с отрицательным шагом очень просто и полезно для создания последовательностей чисел в обратном порядке.
Синтаксис:
range(start, stop, step)
Где:
start: Начальное значение последовательности (включительно).stop: Конечное значение последовательности (не включается в последовательность).step: Шаг, с которым генерируется последовательность.  Чтобы двигаться в обратном направлении, step должен быть отрицательным.Важно:
start должно быть больше, чем stop.  Иначе, range() вернет пустую последовательность.start пропущено (то есть используется только range(stop, step) или range(step)), то автоматически устанавливается start=0, что обычно нежелательно при отрицательном шаге.Примеры:
Пример 1:
for i in range(5, 0, -1):
  print(i)
# Вывод:
# 5
# 4
# 3
# 2
# 1Пример 2: (с включением нуля)
for i in range(5, -1, -1):
  print(i)
# Вывод:
# 5
# 4
# 3
# 2
# 1
# 0Пример 3: (отрицательные числа)
for i in range(-1, -6, -1):
  print(i)
# Вывод:
# -1
# -2
# -3
# -4
# -5Пример 4: (создание списка)
numbers = list(range(10, 5, -1))
print(numbers)
# Вывод:
# [10, 9, 8, 7, 6]Пример 5: (пустая последовательность, если start < stop при отрицательном шаге)
for i in range(0, 5, -1):
  print(i) # Ничего не будет выведено
print(list(range(0,5,-1))) # Output: []