import heapq from itertools import count sequence = count() pending = [] for priority, task in [(2, "check shed"), (1, "water gate"), (1, "water pond")]: heapq.heappush(pending, (priority, next(sequence), {"task": task})) result = [] while pending: _, _, payload = heapq.heappop(pending) result.append(payload["task"]) print(result)