The first thing that came to mind: list1 = {a1, a2, a3, a4, a5}; Rest@FoldList[Append, {}, Most@list1] Rest[list1] / % > {{a2/a1}, {a3/a1, a3/a2}, {a4/a1, a4/a2, a4/a3}, {a5/a1, a5/a2, a5/a3, a5/a4}} I am still thinking about a *clean* way to perform the second step.