Haskell answer:
layers = scanl1 (+) [1..]
sizes = scanl1 (+) layers
combinedSizes = [(s1, s2, s1 + s2) | s1 <- sizes, s2 <- takeWhile (< s1) sizes]
newPyramids = filter combinesToPyramid combinedSizes
where combinesToPyramid (s1, s2, sum) = sum `elem` (takeWhile (sum >=) sizes)
answer = head newPyramids
-------- SPOILER ------------ this gives the answer as "(560, 120, 680)", (if you load it up in GHCI and type "answer"). If you want the n first solutions, just type "take n newPyramids":
take 3 newPyramids
[(560,120,680),(27720,1540,29260),(29260,4960,34220)]