I am looking for a computationally-efficient method to generate a complete list of the edges in a given graph. Each vertex has a reference to every other vertex. For the purposes of this question, we give each vertex a letter name, and an edge is recorded by writing the two letters. Although the order of the letters does not matter, only one of the two options should be recorded (i.e. you can record "AB" or "BA, but not both).
Each vertex has a reference to every other vertex. The algorithm starts with a single vertex, which is assumed to be connected in some way to every other point in the graph. For instance, if we started with E in the example image, we could then move to F, A, or B and continue until we record every edge in the graph.
For my particular purposes, the graph happens to have the assumption that every enclosed shape in the graph is a triangle. For instance, in this example, removing AB would make the graph invalid, since EBDA would be a quadrilateral. Also, there are no "hanging" edges - every edge borders at least one triangle. A graph that does not meet these conditions does not need to be considered. This may or may not be helpful in creating a more efficient algorithm, but I'll mention it just in case.
