Вот способ сделать это, используя тот же принцип отклонения недействительных времен, пока мы не получим все, что нам нужно:
import random
def get_random_seconds_with_difference(min_tx, max_tx, number_tx):
times = []
while len(times) < number_tx:
new_time = random.randint(min_tx, max_tx)
if all(abs(new_time - time) >= 150 for time in times):
times.append(new_time)
return times
get_random_seconds_with_difference(0, 3600, 6)
# [2730, 435, 2069, 3264, 3496, 1091]
Использование все делает логику отклонениянемного проще, и использование abs
разницы позволяет нам избежать рассмотрения двух разных случаев.