code: def _findrange(parlist,roots=['JUMP','DMXR1_','DMXR2_','DMX_','efac','log10_efac']):
      
  
      rootdict = {root: [] for root in roots}
  
      res = []
      for par in parlist:
          found = False
          for root in roots:
              if len(par) > len(root) and par[:len(root)] == root:
                  rootdict[root].append(int(par[len(root):]))
                  found = True
          if not found:
              res.append(par)
  
      for root in roots:
          if rootdict[root]:
              if len(rootdict[root]) > 1:
                  rmin, rmax = min(rootdict[root]), max(rootdict[root])
                  res.append('{0}{{{1}-{2}}}{3}'.format(root,rmin,rmax,
                                                    '(incomplete)' if rmax - rmin != len(rootdict[root]) - 1 else ''))
              else:
                  res.append('{0}{1}'.format(root,rootdict[root][0]))
      return res
docs: Rewrite a list of parameters name by detecting ranges (e.g., JUMP1, JUMP2, ...)
      and compressing them.