How to find a mesh loops and rings
The image below will be used as a reference. For clarity's sake, only the normal for face 12 is displayed. The normal is the arrow pointing away from the face, the other two arrows indicate the first edge/vertex (the starting point) and the "spin" (order) of the vertices and edges. For example, this is the vertex and edge ordering (from first to last) for the selected face (12) in the image below:


vert order: 17, 24, 25, 18
edge order: 58, 24, 59, 17




base_edge.link_loops[base_loop].etc


link loop = a loop representing all edges that are part of a face. these edges are sorted counter clockwise around the face normal
link_loops = every "link loop" an edge is part of (edge 24 has 2 loops, edge 67 has 1)
link_loop_next = the next edge in a loop (if face 12's loop was the base, the next edge after 24 would be 59)
link_loop_radial_next = another "link loop" an edge is part of. (if the base loop was for face 12, calling radial next on edge 24 would return the loop for face 19). this returns the same value that is stored in the next loop of an edge's link_loops property (if link_loops[0] was for face 12, link_loops[1] would be for 19).