1) Не забываем условие, что стороны прямоугольника паралельны координатным осям - это возможно только в случае, когда у нас для 4-х точек (x1,y1), (x2,y2), (x3,y3), (x4,y4) выполняются сразу 4 условия:
x1=x2, x3=x4, y1=y3, y2=y4
2) Выбираем все уникальные х-координаты, которые представлены более чем в 1 экземпляре - это набор прямых проходящий через точки нашего набора параллельно оси Oy.
Для этих прямых выбираем все точки из исходного списка, которые на них лежат.
3) По аналогии с пунктом 2 делаем тоже самое для y
4) В итоге, мы имеем два набора точек - один рассчитанный в пункте 2 и второй в пункте 3, причем, сразу заметим, что часть точек присутствуют в обеих, а часть только в одном из них и эту вторую часть можно будет сразу отбросить, так как они не находятся на пересечении прямых.
5) Дальше используя комбинаторику перебираем все варианты пар точек по горизонтали и аналогичный по вертикали, считая площади, не забывая проверять пункт 1.
Вот этот пункт самый ресурсоёмкий и его можно оптимизировать.
6) Площади считаем из координат по простой формуле: S = (x3-x1) * (y2-y1)