http://projecteuler.net/index.php?section=problems&id=116
これもProblem 114と同じですね。最後に全て1を除く処理をしています。
def num_ways(l, m): a = [ 1 ] * m for n in range(m, l + 1): a.append(a[n-m] + a[n-1]) return a[l] - 1 L = 50 print sum(num_ways(L, m) for m in range(2, 5))