def steps_to_repeat_per_axis(universe): initial_universe = copy(universe) steps_to_repeat = [] for axis in ['x', 'y', 'z']: moons = [parse_moon(str) for str in inputs] universe = Universe(moons) universe.step() while not universe.equal_on_axis(axis, initial_universe): universe.step() steps_to_repeat.append(universe.steps) return steps_to_repeat