2026-04-30 12:34:36 -04:00
|
|
|
import re
|
2023-07-01 11:58:00 -04:00
|
|
|
|
2026-04-30 12:34:36 -04:00
|
|
|
RE_RANGE = re.compile(r"(-?\d+)(?:-(-?\d+))?(?:,|$)")
|
2023-07-01 11:58:00 -04:00
|
|
|
|
2026-04-30 12:34:36 -04:00
|
|
|
def expand(expression):
|
|
|
|
|
for start, stop in RE_RANGE.findall(expression):
|
|
|
|
|
yield from range(int(start), int(stop or start) + 1)
|
2023-07-01 11:58:00 -04:00
|
|
|
|
2026-04-30 12:34:36 -04:00
|
|
|
print(list(expand("-6,-3--1,3-5,7-11,14,15,17-20")))
|