<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_start_and_end(cls, start, end, aa=None, major_pitch=225.8, major_radius=5.07, major_handedness='l', minor_helix_type='alpha', orientation=1, phi_c_alpha=0.0, minor_repeat=None):
 """Creates a `HelicalHelix` between a `start` and `end` point."""

        start = numpy.array(start)
        end = numpy.array(end)
        if aa is None:
            minor_rise_per_residue = _helix_parameters[minor_helix_type][1]
            aa = int((numpy.linalg.norm(end - start) /
                      minor_rise_per_residue) + 1)
        instance = cls(
            aa=aa, major_pitch=major_pitch, major_radius=major_radius,
            major_handedness=major_handedness,
            minor_helix_type=minor_helix_type, orientation=orientation,
            phi_c_alpha=phi_c_alpha, minor_repeat=minor_repeat)
        instance.move_to(start=start, end=end)
        return instance