code: def biclique(self, xmin, xmax, ymin, ymax):
          
  
          Aside = sum((self.maximum_hline_bundle(y, xmin, xmax)
                       for y in range(ymin, ymax + 1)), [])
          Bside = sum((self.maximum_vline_bundle(x, ymin, ymax)
                       for x in range(xmin, xmax + 1)), [])
          return Aside, Bside
docs: Compute a maximum-sized complete bipartite graph contained in the
          rectangle defined by ``xmin, xmax, ymin, ymax`` where each chain of
          qubits is either a vertical line or a horizontal line.
  
          INPUTS:
              xmin,xmax,ymin,ymax: integers defining the bounds of a rectangle
              where we look for unbroken chains.  These ranges include both
              endpoints.
  
          OUTPUT:
              (A_side, B_side): a tuple of two lists containing lists of qubits.
                  the lists found in ``A_side`` and ``B_side`` are chains of qubits.
                  These lists of qubits are arranged so that
  
                  >>> [zip(chain,chain[1:]) for chain in A_side]
  
                  and
  
                  >>> [zip(chain,chain[1:]) for chain in B_side]
  
                  are lists of valid couplers.