code: def gen_dipole_dipole(self,
                            skipc,
                            skipv=None,
                            stepc=1,
                            stepv=1,
                            nr_voltage_dipoles=10,
                            before_current=False,
                            start_skip=0,
                            N=None):
          if N is None and self.nr_electrodes is None:
              raise Exception('You must provide the number of electrodes')
          elif N is None:
              N = self.nr_electrodes
          if skipv is None:
              skipv = skipc
          configs = []
          for a in range(0, N - skipv - skipc - 3, stepc):
              b = a + skipc + 1
              nr = 0
              if before_current:
                  for n in range(a - start_skip - 1, -1, -stepv):
                      nr += 1
                      if nr > nr_voltage_dipoles:
                          continue
                      m = n - skipv - 1
                      if m < 0:
                          continue
                      quadpole = np.array((a, b, m, n)) + 1
                      configs.append(quadpole)
              nr = 0
              for m in range(b + start_skip + 1, N - skipv - 1, stepv):
                  nr += 1
                  if nr > nr_voltage_dipoles:
                      continue
                  n = m + skipv + 1
                  quadpole = np.array((a, b, m, n)) + 1
                  configs.append(quadpole)
          configs = np.array(configs)
          if self.configs is None:
              self.configs = configs
          else:
              self.configs = np.vstack((self.configs, configs))
          return configs