# Python3, 234 bytes

The solution below produces all `m, n, r` triples specified in the original post, and also includes valid outputs which are not contained in the test cases.

```lang-py
lambda:[(m,n,r)for m in range(1,101)for n in range(m+1,101)for r in range(1,101)if F(n,m,r)and m+n<2*r and n>m]
def F(n,m,r):
 T=r**2-((n+m)/2)**2
 if T<0:return 0
 L=2*T**.5
 F=(L**2+4*m*n)**.5
 return(-L+F)/2 and int(U:=(-L+F)/2)==U
```

[Try it online!](https://tio.run/##XZRNb6MwEIbP5VdYvcQQmsU2n1HZY0/VntoT7YEGp7UKBhlSaVX1t2fHnrhUGykoPLzz8U48TH@Xt1GLcjLnY/107tvhpWv3DR1iHZvwOBoyEKWJafWrpCxmCXNQr3DYrtj8r1VHckd1PECuVndk2OpbHhlif@vfw3PQyVWwD8hDbaKI31Cqt0P4i4dwExDI8XCb7I1cTkaTJCD3NY8eomiXBeSupvcg2qbREOkQGQrpzf32DnK4Wkov9HFfexbW9eNZDdNoFlAH76QmRxoGc02ur6@DhsXPBD4pfIscLiUkbTjCyj5gcMktFKsytRduYYqwtPfcwwyhTVdwH56vyqz0sHCQFTZn5WGJ0BaumG@pcpALrwTYsGTNWbrECUB0xHLfp4PoiNn7PMVCDROrTVFh8w1DR8wW4oWH6IhltlDhq6MjJ8qEh8XaZ5b5QuiIu8JuKhaiI1H6lmw4R0eCXxyxBJrnbJ1S5XPyiyOchYfoiNmchR8IR0fcFs78QDg64m7IlQ//4agoPERHwobnpYflqqyEhxdH7j@7HJtGXBxVHlrvAh2JxIbnXomO0uTHsWkEOnKjLC@HoRHpOrrStyTQUfp9kh1ER7mfJ4ajIzf0KkFod@Gj7WfYjuY5sOut7HofVb9IQ/@MWsZk3s1Trxa6edKbEDb4qo1J9AIRQztR2LoY9mt3VLpr@x5E3XYTExWGoJtnCdu3nKZe0pfQJn4Prmy5XTtNUnfUPwqDYDJ2gTeQg4xGvSrd9mSR80IO7Sxn0h4O40kvsiPQ5Cb08nF5k4Z0aj6MH9LAU8h@kjMIvr3M8AaQHf2M3r9uPiNb/cuawAQqPP8D)