Для чего оно стоит, вот простейшее и наиболее эффективное (но, вероятно, наименее обобщенное) решение:
result = [[(x[0,0], x[0,1]), (y[0,0], y[0,1])],
[(x[1,0], x[1,1]), (y[1,0], y[1,1])]]
Вывод:
[[(1, 2), (3, 4)], [(5, 6), (7, 8)]]
По общему признаниюЭто не обобщает, но вопрос в том, в каком направлении требуется обобщение?Более длинный внешний размер?Более длинный внутренний размер?Вопрос не требует какого-либо обобщения.
Исходя из четко сформулированного требования, это решение, конечно, можно изменить, сделав его обобщенным настолько, насколько необходимо .