#Python, 93 bytes <!-- language-all: lang-python --> f=lambda a,b,r='',i=2:a and f(a[:-1],b,r+a+'\n')or(len(b)>=i and f(a,b,r+b[:i]+'\n',i+1)or r) Starts with the empty string `r`, adds `a` and a newline and removes the last character from `a` until `a` is empty then adds the required portions of `b` and a newline by keeping a counter, `i`, which starts at `2` until the length of `b` is exceeded, then returns `r`. Has a trailing newline. All tests are on [**ideone**][1] [1]: http://ideone.com/fjXSMI