Ваши буквы и цифры являются кортежами, а не списками. Итак, давайте исправим это
scala> val letters = List('a', 'b', 'c', 'd', 'e')
letters: List[Char] = List(a, b, c, d, e)
scala> val numbers = List(1,2)
numbers: List[Int] = List(1, 2)
Теперь, если мы их заархивируем, мы не получим желаемого результата
scala> letters zip numbers
res11: List[(Char, Int)] = List((a,1), (b,2))
Но это говорит о том, что если бы числа повторялись бесконечно, то проблема была бы решена
scala> letters zip (Stream continually numbers).flatten
res12: List[(Char, Int)] = List((a,1), (b,2), (c,1), (d,2), (e,1))
К сожалению, это основано на знании того, что цифры короче букв. Так что, чтобы все это исправить
scala> ((Stream continually letters).flatten zip (Stream continually numbers).flatten take (letters.size max numbers.size)).toList
res13: List[(Char, Int)] = List((a,1), (b,2), (c,1), (d,2), (e,1))