This documents an unmaintained version of NetworkX. Please upgrade to a maintained version and see the current NetworkX documentation.


havel_hakimi_graph(aseq, bseq, create_using=None)[source]

Return a bipartite graph from two given degree sequences using a Havel-Hakimi style construction.

Nodes from the set A are connected to nodes in the set B by connecting the highest degree nodes in set A to the highest degree nodes in set B until all stubs are connected.

  • aseq (list) – Degree sequence for node set A.
  • bseq (list) – Degree sequence for node set B.
  • create_using (NetworkX graph instance, optional) – Return graph of this type.


This function is not imported in the main namespace. To use it you have to explicitly import the bipartite package.

The sum of the two sequences must be equal: sum(aseq)=sum(bseq) If no graph type is specified use MultiGraph with parallel edges. If you want a graph with no parallel edges use create_using=Graph() but then the resulting degree sequences might not be exact.

The nodes are assigned the attribute ‘bipartite’ with the value 0 or 1 to indicate which bipartite set the node belongs to.