Good work Gokul43201. I think that's the key, you need to do it two dimensionally, with induction on both variables at the same time. When I tried to do induction on just one variable I came to an impass but I could see a way that used both variable would work.
BTW this is the 2D solution I came up with,
Let the proposition P(a,n) denote that a (a+1) ... (a+n-1) || n!
You can show that assuming P(a+1,n) together with P(a,n+1) implies P(a+1,n+1).
P(a,n+1) : a (a+1) ... (a+n) = r (n+1)! {for some integer r}
P(a+1,n) : (a+1) (a+2) ... (a+n) = s n! {for some integer s}
Now consider P(a+1,n+1),
We need to show that (a+1)(a+2) ... (a+n+1) = t (n+1)! {for some integer t}
LHS = a (a+1) .. (a+n) + (n+1) (a+1) ... (a+n) : {after expanding by the (a+n+1) term}
= r (n+1)! + s (n+1)n! : {after substituting P(a,n+1) and P(a+1,n) respectively}
= (r+s)(n+1)!
Since it's easy to show that P(1,n) is true for all n and that P(a,1) is true for all a then the proof inductively follows for all a,n from P(a+1,n) and P(a,n+1) implies P(a+1,n+1).
eg,
P(2,1) and P(1,2) implies P(2,2)
P(2,2) and P(1,3) implies P(2,3)
P(2,3) and P(1,4) implies P(2,4)
... etc to build up the second row P(2,n) and then repeat for P(3,n), P(4,n) etc.