I would like to generate the set of all possible, non-isomorphic graphs for a given number of nodes (n) with specified degrees. Such graphs are relatively small, they may have n = 5-8 where the degree of nodes may range from 1-4.
Generated graphs must be allowed to contain loops and multi-edges. Here, multi-edges have a max value of 2, that is any two nodes may be connected to eachother by a maximum of 2 edges, they may also be connected by 1 edge or 0 edges.
E.G. Generate all possible graphs (thay are allowed to contain loops and multi-edges) with 8 nodes (n = 8) where 4 of the nodes have the degree 2 (2-connected) and 4 of the nodes have the degree 3 (3-connected).
Is there an efficient way to generate all possible graphs (with restrictions listed above) with 5-8 nodes where the degree of each node is specified ?
I currently have the attached code that works well where n = 1-4 but either exceeds memory or takes an unreasonable amount of time to execute where n = 5-8.