It seems like the method in the flickr.py will use
tag_mode=%3Cbuilt-in+function+all%3E
making the API not recognized and use the default any method
The root cause should be inside this function:
def _doget(method, auth=False, **params):
due to the use of all which is a keyword in python, urlencode(all) will convert it to %3Cbuilt-in+function+all%3E
So the solution to your problem is to change
photos = flickr.photos_search(tags= ["abc", "def"], tag_mode = all, per_page=10)
to
photos = flickr.photos_search(tags= ['abc', 'def'], tag_mode = 'all', per_page=10)