code: def rspr(self, times=1, **kwargs):
          
  
          spr = SPR(self.copy())
          for _ in range(times):
              spr.rspr(**kwargs)
          return spr.tree
docs: Random SPR, with prune and regraft edges chosen randomly, and
          lengths drawn uniformly from the available edge lengths.
  
          N1: disallow_sibling_sprs prevents sprs that don't alter the topology
          of the tree