One possible solution for this problem is to get a dict (I used a defaultdict because it is nicer if one doesn't need to initiate empty lists by hand) where the key is the value and the value is a list of the coordinates for this value:
a = [[279, 629, 590], [382, 825, 279], [629, 569, 113], [382, 785, 296]]
from collections import defaultdict
elements = defaultdict(list)
for row_index in range(len(a)):
for col_index in range(len(a[row_index])):
elements[a[row_index][col_index]].append([row_index, col_index])
The next step would be to create a list of the value and the coordinates like you specified:
multiples = [[[i], elements[i]] for i in elements if len(elements[i]) > 1]
Which would be:
[[[629], [(0, 1), (2, 0)]],
[[279], [(0, 0), (1, 2)]],
[[382], [(1, 0), (3, 0)]]]