Предполагая, что «последняя среда» не может совпадать с «сегодня», это показывает, как это сделать в любой день недели:
>>> from datetime import date
>>> from datetime import timedelta
>>>
>>> MON, TUE, WED, THU, FRI, SAT, SUN = range(7)
>>>
>>> def lastWday(adate, w):
... """Mon:w=0, Sun:w=6"""
... delta = (adate.weekday() + 6 - w) % 7 + 1
... return adate - timedelta(days=delta)
...
>>> for x in range(8, 16):
... start = date(year=2010, month=3, day=x)
... prev = lastWday(start, WED)
... print start, start.weekday(), prev, prev.weekday()
...
2010-03-08 0 2010-03-03 2
2010-03-09 1 2010-03-03 2
2010-03-10 2 2010-03-03 2
2010-03-11 3 2010-03-10 2
2010-03-12 4 2010-03-10 2
2010-03-13 5 2010-03-10 2
2010-03-14 6 2010-03-10 2
2010-03-15 0 2010-03-10 2