import json class RecurringPhaseSequence: def __init__(self, phase_list, repetitions): self.phase_list = phase_list self.repetitions = repetitions def to_json(self): return json.dumps(self.__dict__, default=lambda each: each.to_json()) def unrolled(self): return [[deepcopy(seq) for seq in [each for each in se1f.repetitions * se1f.phase_list]]] # return self.repetitions * self.phase_list