starts = set(w[0] for w in data)
ends = set(w[3] for w in data)

from collections import defaultdict
start_dict = defaultdict(list)
end_dict = defaultdict(list)

for w in data:
    start_dict[w[0]].append(w)
    end_dict[w[3]].append(w)

count = 0
for s in start_dict:
    starts = start_dict[s]
    n = len(starts)
    if n < 2: continue
    for e in end_dict:
        ends = end_dict[e]
        if len(ends) < 2: continue
        heads = [w[0] for w in ends]
        for i in range(n):
            w = starts[i]
            tail = w[3]
            if tail not in heads: continue
            for j in range(i + 1, n):
                w2 = starts[j]
                tail2 = w2[3]
                if tail == tail2: continue
                if tail2 in heads:
                    w3 = ends[heads.index(tail)]
                    w4 = ends[heads.index(tail2)]
                    count += 1
                    print w
                    print u"%s　　%s" % (w2[1], w3[1]) 
                    print u"%s　　%s" % (w2[2], w3[2]) 
                    print w4
                    print
                    
