what have you tried - what is your current not working code for the loop?
I’m saying your big/small/big/small could be odd/eve/odd/even of the index of the items in the for loop.
How you actually do this, off the top of my head I can’t tell you, but I think there is a way to check the index of the item you are on to see if it is odd or even (most likely using the modulo which tells you if there is a remainder when you divide one thing by another (if the index is even then there is no modulo) - then if it is odd your css class is xyz, else it is (even) zyx.
Another approach would be to do it purely with CSS. You can use the nth-child selectors to target even, odd, or any other position.
Where this solution falls apart is if you want to spit out different code for the various work items in the loop. But if the HTML is similar for all and you’re just looking to make cosmetic changes like vary widths, this will work.
So the first one is once then it is twice/twice/twice from then on? using the opposite one each time.
I think MMs idea is best, maybe this answer for everything except the first one. I’m not so good at that type of css but I think it is doable with some experimentation.
I’m sure you could do it in liquid- its just a matter of effort. You could probably have a counter and reset it when it gets to 2 or something (I am not so good at algorithims). Liquid can do a lot with assigning variables and what not. Also, the more of that you do in liquid the more it slows the build time (not an issue with 6 though). Using css to do it seems like the smarter way.
That link above would work as far as I can tell, rather than doing it manually as you are it is doing every 4th and 4th-1 and that gets you every other 2.