両方書いてみた
https://ideone.com/2enXYU

リストをフラット化したり、1個ずらしで2個ずつとってきたりする機能は
toolz, more_itertools, numpyあたりに用意されてるからそれらを使ってもいいと思う