Here is my solution, clear and concise, and works for any number of columns:
n=ncol(df1)
combb=combn(n,2)
combb=cbind(combb, sapply(1:n, function(i) rep(i,2)))
res=apply(df1, 1, function(x) { apply(combb, 2, function(y) prod(x[y])) })
t(res)
# [,1] [,2] [,3] [,4] [,5] [,6]
# [1,] 0.17697473 0.02748285 0.056820059 0.08559952 0.365890531 0.008823729
# [2,] 0.08337501 0.12419698 0.204739766 0.05057603 0.137444401 0.304984209
# [3,] 0.47301970 0.51068123 0.487089495 0.49592997 0.451167798 0.525871254
# [4,] 0.34920860 0.07156869 0.092820832 0.26925425 0.452905189 0.019023202
# [5,] 0.21232357 0.14774167 0.071445132 0.43906475 0.102675746 0.049713853
# [6,] 0.83221898 0.63296215 0.621757189 0.84721676 0.817486693 0.472890881
# [7,] 0.05542008 0.02139673 0.015153719 0.07825199 0.039249934 0.005850588
# [8,] 0.03376319 0.45808619 0.026509902 0.58342170 0.001953909 0.359676293
# [9,] 0.40155468 0.50514566 0.315655035 0.64261164 0.250923183 0.397086073
# [10,] 0.03535148 0.01187911 0.006472142 0.06488487 0.019260683 0.002174826