import random
def generate_non_overlapping(begin, end, num_ranges):
# Generate unique random points, the random numbers is chaotic
# The ranges increase and become non‑overlapping only after sorting
points = sorted(random.sample(range(begin, end), num_ranges * 2))
# Once sorted, we pair them
return [(points[i], points[i + 1]) for i in range(0, len(points), 2)]
start = 1
end = 500
num_ranges = 8
print(generate_non_overlapping(start, end, num_ranges))
'''
run:
[(90, 102), (106, 140), (161, 174), (176, 243), (269, 276), (340, 359), (363, 392), (442, 445)]
'''