item_cnt = {}

def icount(n):
    return item_cnt[str(n)]

def add_item(n):
    sn = str(n)
try:
    item_cnt[sn] += 1
except KeyError:
    item_cnt[sn] = 1

def cmp_items(ij, kl):
    i, j = ij
k, l = kl
if icount(i) < icount(k) or icount(i) == icount(k) and icount(j) < icount(l):
    return -1
return 1
input = [[0, 0], [1, 2], [1, 4], [2, 2], [2, 3], [3, 3], [3, 4]]
for i, j in input:
    add_item(i)
add_item(j)
input.sort(key=cmp_to_key(cmp_items))
print(input)
Сортировка пар списка по частоте элементов пары