You are first replacing all As with Ts before then replacing all Ts with As again (including those you just replaced As with!):
>>> string = 'ACGTACG'
>>> string.replace('A', 'T')
'TCGTTCG'
>>> string.replace('A', 'T').replace('T', 'A')
'ACGAACG'
Use a translation map instead, fed to str.translate():
transmap = {ord('A'): 'T', ord('C'): 'G', ord('T'): 'A', ord('G'): 'C'}
return string.translate(transmap)
The str.translate() method requires a dictionary mapping codepoints (integers) to replacement characters (either a single character or a codepoint), or None (to delete the codepoint from the input string). The ord() function gives us those codepoints for the given 'from' letters.
This looks up characters in string, one by one in C code, in the translation map, instead of replacing all As followed by all Ts.
str.translate() has the added advantage of being much faster than a series of str.replace() calls.
Demo:
>>> string = 'ACGTACG'
>>> transmap = {ord('A'): 'T', ord('C'): 'G', ord('T'): 'A', ord('G'): 'C'}
>>> string.translate(transmap)
'TGCATGC'