dfa = np.diff(np.hstack((-1, a, -1)))
starts = np.where(dfa == 2)[0]
stops = np.where(dfa == -2)[0]
valid_mask = stops - starts >= 3
out = np.column_stack((starts, stops))[valid_mask].tolist()
получение диапазонов последовательностей одинаковых записей минимальной длины в массиве numpy