Without a better understanding of your requirements, I think something like this might work:
data = {100, 3, 2, 103, 102, 5, 4, 2, 105, 104, 103, 3};
findPeaks[ data_List, tolerance_List] := Module[
{
peaks = FindPeaks[data]
, lastPeak = {-Infinity, -Infinity}
, forward
, reverse
},
forward = Map[
With[
{
retVal = If[
And[
First[#1] - First[lastPeak] <= tolerance[[1]],
Last[#1] - Last[lastPeak] <= tolerance[[2]]
]
,
Nothing
,
#1
]
}
,
lastPeak = #1
] &
,
peaks
];
reverse = Map[
With[
{
retVal = If[
And[
First[#1] - First[lastPeak] <= tolerance[[1]],
Last[#1] - Last[lastPeak] <= tolerance[[2]]
]
,
Nothing
,
#1
]
}
,
lastPeak = #1
] &
,
Reverse[forward]
];
Reverse[reverse]
];
findPeaks[data, {3, 3}]