How to obtain selected UV pairs on same edge in Python?
You're almost there. I've taken the liberty to remove the construction of unnecessary lists, and used generators in their place.

The most important change is indeed in that if statement. Instead of using the link_loops list (which can be of arbitrary length), it's better to only use link_loop_next. Since you loop over all selected edges anyway, it's enough to look at the 'next' edge only.

import bpy, bmesh

obj = bpy.context.active_object
bm = bmesh.from_edit_mesh(obj.data)
uv_layer = bm.loops.layers.uv.verify()
sel_faces = (f for f in bm.faces if f.select)

def find_loops():
    """Generator, yields loops of selected mesh faces"""

    for f in sel_faces:
        for l in f.loops:
            yield l

def find_selected_loops():
    """Generator, yields loops that are selected in UV editor"""

    for l in find_loops():
        if l[uv_layer].select and l.link_loop_next[uv_layer].select:
            yield l

# Show the coordinates of selected loops. Note that loops are printed
# twice, once for the (A -&gt; B) edge, and once for the (B -&gt; A) edge.
print()
for l in find_selected_loops():
    print(l.vert.co, ' -&gt; ', l.link_loop_next.vert.co)


If you want to remove the distinction between (A -&gt; B) and (B -&gt; A) loops, you could extend the find_selected_loops() generator so that it stores the tuples (l.vert, l.link_loop_next.vert) in a set, and only yield those edges whose (l.link_loop_next.vert, l.vert) are not in that set.