Перебор размещений из n-элементного множества по k. На с++, питон или паскаль абс
m - массив элементов
n - количество элементов в множестве (длина массива)
e - конечный массив
e=[]
m=[0, 1, 2, 3, 4]
n=len(m)
k=2
for i in range (n**k):
j=i
c=[]
while j>0:
c.append(m[j%n])
j//=n
c=c+[m[0]]*(k-len(c))
e.append(c)
print(e)