Since cuts are defined as proper bipartitions of the vertex set it suffices to enumerate all proper subsets S ⊂ V (G). Since we are only interested in 2cuts, we can restrict ourselves to connected subsets, i.e., connected induced subgraphs G[S] and G[V \ S]. We employ a branch and bound strategy: Starting for every node v ∈ V (G) with the trivial initial cut S = {v}, we recursively add one new vertex to S at every step, with the restriction that we only may add nodes neighboring to any vertex already in S. If G is 2connected, neither S nor T can never become disconnected using this scheme. We guarantee 2-connectedness prior to this step by removing all bridges as trivial cuts from the input graph and treating all resulting components as separate instances. A speed up of this procedure may be achieved by avoiding duplicate enumeration of subsets in different branches. For instance, the set {1, 2} may be reached by adding vertex 2 to S = {1} or 1 to S = {2}. The order is irrelevant for both cuts and branch generation. We thus avoid recomputation by storing all already encountered sets S in a hash table and skipping any branch that already has been added to the hash table in a previous set. for n ∈ allnodes do 7: