  The method of generating Pythagorean triples is known for about 2000 years.
Though the classical formulas produce all primitive triples they do not
generate all possible triples, especially non-primitive triples. This paper
presents a direct method to generate all possible triples both primitive and
non-primitive for any given number. Then the technique is generalized to
produce Pythagorean Quadruples and n-tuples. Our method utilizes the fact that
the difference between lengths of the hypotenuse and one leg of a Pythagorean
triangle can have only certain distinct values depending on the length of the
other which remains true for higher tuples also.
