В этом конкретном примере я думаю, что вы можете просто использовать функцию слияния.Как правило, его аргументы all.x и all.y установлены в TRUE, поэтому он автоматически создает все комбинации, поскольку у фреймов данных нет общих переменных или значений.
df <-data.frame(a=letters[1:10] )
df1<-data.frame(one=1:10)
dfcomb <- merge(df,df1)
dim(dfcomb)
[1] 100 2 #gives 100 rows and 2 columns