In a pure mathematical sense, recursion is any process that repeats itself, that is, any formula that appears more than once in the same schema. Usually, however, the occurrences of the smaller formula are organized by putting them in a one-to-one correspondence with an ordinal.

A formula defined from a schema that includes a copy of itself (i.e. the way computer scientists think of recursion) is a special case of recursion, as are things like iteration, transfinite or not.

Note that simple iteration is a special case of recursion even in the CS sense. Some programming languages make things easier (?) on you by providing structures (e.g. for, while) to make simple iteration easier; however, these structures are not strictly necessary. Other languages (e.g. Lisp) do not have structures like that.