This seems a little ill-formed. This is a list of a list (with a third list as an element). This is probably why you're getting an error in testing the bad_acker loop. The first thing you do is iterate over bad_acker, which has one element (another list). ack(*input) in line 47 is trying to unpack the inner list, which results in all of its elements, i.e. 'a', [2,3,4], and 5. ack then says that it can only handle two and only two parameters, and gets mad at you for giving it three.
See if you can fix that and have an uncommented bad_acker test