docs: def detuning_combinations(lists):
      r"""This function recieves a list of length Nl with the number of
      transitions each laser induces. It returns the cartesian product of all
      these posibilities as a list of all possible combinations.
      """
      Nl = len(lists)
      comb = [[i] for i in range(lists[0])]
      for l in range(1, Nl):
          combn = []
          for c0 in comb:
              for cl in range(lists[l]):
                  combn += [c0[:]+[cl]]
          comb = combn[:]
      return comb