def get_euler_rotation_between(start, end):
    """
      Returns the Euler rotation so that start.rotate( get_euler_rotation_between( start, end ) ) == end

      Args:
        start: An Euler
        end: An Euler with the same ordering

      Returns:
        An Euler
    """
    # Gets the rotation by converting Euler angles to rotation matrices and composing
    # return end.to_quaternion().rotation_difference( start.to_quaternion() ).to_euler()
    return (end.to_matrix() * start.to_matrix().inverted()).to_euler()