This would be similar to 'key' argument already available for min(), max() and sorted() and would let user decide what must be considered True and what not.
Some use cases:


all(a, b, c, ... key=callable)
all(a, b, c, ... key=lambda x: isinstance(x, int))
any(a, b, c, ... key=lambda x: x < 10)

a = b = c = None
for x in foo:
    if cond1:
         a = 0
    elif cond2:
         b = 0
    elif cond3:
         c = 0
# meaning all cond* has been satisfied and it's ok to consider 0 a meaningful value
assert all(a, b, c, key=lambda x: x != None)   


Thoughts?

--- Giampaolo
http://code.google.com/p/pyftpdlib/
http://code.google.com/p/psutil/
http://code.google.com/p/pysendfile/